在C中声明常量字符串的最佳方法
我有一个字符串:在C中声明常量字符串的最佳方法,c,c-preprocessor,constants,C,C Preprocessor,Constants,我有一个字符串:“世界是一个居住的美丽地方。” 我有两个源文件和一个全局头文件。我可以通过两种简单的方式访问字符串:- 如图所示声明和定义常量变量:我可以使用extern const char*str=“世界是一个美丽的居住地。” 使用#定义STR“世界是一个美丽的居住地。” 上述两个选项中,哪一个在C? 中不重要?(不管你是否只考虑得到字符串文字)你是怎么做的,但是如果你想在调试器中找到字符串常量,你可能想使用 const char *STR =…< /COD> < /P> 有了宏定义
“世界是一个居住的美丽地方。”
我有两个源文件和一个全局头文件。我可以通过两种简单的方式访问字符串:-
- 如图所示声明和定义常量变量:我可以使用
extern
const char*str=“世界是一个美丽的居住地。”代码>
- 使用
#定义STR“世界是一个美丽的居住地。”
上述两个选项中,哪一个在C?
中不重要?(不管你是否只考虑得到字符串文字)你是怎么做的,但是如果你想在调试器中找到字符串常量,你可能想使用<代码> const char *STR =…< /COD> < /P> 有了宏定义,您将了解宏的所有问题 扩张——扩张的副作用,名称的污染 空间、与调试器帮助的偏差等除了“变量”
str
的定义是错误的之外,这主要是个人品味的问题,以及你应该如何使用它。考虑到一个变量会污染每个包含全局变量标题的翻译单元。答案显而易见。