中国开发网: 论坛: 程序员情感CBD: 贴子 114255
haitao
另一个经验问题:如何在程序中使用字符串常量,实现多语言版本最简单?
我的看法是:
├在使用时: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这个空函数的多此一举其实是埋下伏笔,在第一、第二阶段过渡时不用修改任何调用代码
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录