haitao:
另一个经验问题:如何在程序中使用字符串常量,实现多语言版本最简单?
[阅读: 485] 2005-03-14 11:08:17
我的看法是:
├在使用时:printf("%s",getstr(STR_XXXX));
│├对于结构常量里的字符串常量,需要把结构常量改为全局结构变量,只有一个初始化函数才可以修改
│└void initConstStructArray(*array) { ... array[i].Label=getstr(STR_...); ... }
├第一阶段:在独立的源文件定义所有用到的常量串
│└一种语言配备一个源文件的版本
│ ├#define getstr(s) (s):空函数
│ ├#define STR_INFO1 "info1"
│ └#define STR_INFO2 "info2"
├第二阶段:常量串在运行时读取自外部配置文件
│└一种语言配备一个外部配置文件
│ ├char* getstr(int strid):从配置文件里按ID读取字符串的实际实现
│ ├#define STR_INFO1 10020001 //"info1"
│ └#define STR_INFO2 10020002 //"info2"
└使用getstr这个空函数的多此一举其实是埋下伏笔,在第一、第二阶段过渡时不用修改任何调用代码