繁体   English   中英

如何创建字符串表

[英]How to create a string table

奇怪的是,几乎没有关于此主题的在线文档。 我有一个带有用于用户界面的硬编码字符串的应用程序,以及分散在源代码中的各种其他内容。 我试图至少汇总其中一些,因为其中许多需要根据应用程序的编译平台进行更改。

我在这里使用了第二个示例(下面复制以供参考),但是它在实际工作方式上的细节有些模糊。 似乎所有内容都已在project_strings.cpp重新初始化,并且从未真正调用过该代码。

// in your project_strings.h
namespace MyProjectStrings {
const char *password;
...
}

// the project_strings.cpp for the strings
#include "project_strings.h"
namespace MyProjectStrings {
const char *password = "Password:";
...
}

// some random user who needs that string
#include "project_strings.h"
std::string password(MyProjectStrings::password);

有人可以解释一下还是告诉我这是一个糟糕的主意,我应该做些其他事情吗?

您链接的示例只是在头文件的名称空间中声明一些const char* ,然后在.cpp文件中定义它们。 但是,对于C ++,使用的语法不正确-头文件中的声明应为extern const char*而不是const char*因为const值默认为C ++中的内部链接。

大多数C ++编译器/链接器工具链会将来自一个转换单元( project_strings.cpp )的所有字符串放到生成的可执行文件的只读数据段中。

这是处理静态字符串的一种合理,简单的方法,尽管如果您需要处理本地化或其他复杂性,则可能需要一些动态/复杂的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM