【发布时间】:2015-05-02 09:54:57
【问题描述】:
为什么有2个机会:
- 全局变量
-
#define的符号常量?
所以我知道#define 做了什么,但我不知道使用上有什么区别。
我必须有哪种情况才能在正确的机会上决定自己?有什么机会可以做另一个不能做的事情?我希望我能澄清我的意思。
【问题讨论】:
-
全局变量可以从任何地方访问和编辑。 #define 常量不能编辑,只能读取。它与线程安全和函数重入有关。
-
"我知道#define 是做什么的" 确定吗? ;-) 但是,阅读此gcc.gnu.org/onlinedocs/cpp 可能会帮助您获得启发。
-
一个
global变量是一个变量,你可以改变它的值,除非你把它变成一个const,#define是固定值。根本无法更改。 -
@GAURAVVERMA:它甚至不一定是“价值”。
-
#define 由预处理器处理。它只是某种意义上的纯文本替换。如果涉及您的#define 指令的错误,编译器将无法弄清楚,您最终会收到“神秘”的错误消息。预处理器指令有它们的位置,但有时最好坚持使用“
const globals
标签: c global-variables c-preprocessor