【发布时间】:2014-02-25 22:04:30
【问题描述】:
我以为我曾经读过 #define 值中的前导下划线,例如;
#define _FOO
被 ANSI C 或其他一些标准劝阻或禁止。今天我浏览了 Internet,查看了 K&R 和 CRM,但找不到任何支持它的东西。我发现的最接近的是一个建议(没有合适的引用),预定义的标识符总是以 和 开头,以双下划线结尾,这样上面就不会发生冲突。我问是因为我正在使用一个抱怨的新静态检查器:
#ifndef __FOO_H
#define __FOO_H
...
#endif // __FOO_H
在#define 行,无论我是对的还是检查器是对的,我都找不到权威的答案。
【问题讨论】:
-
“今天我浏览了互联网,查看了 K&R 和 CRM,但找不到任何支持它的东西” - 嗯……您尝试过标准吗?
-
是的,那个。 :) 该标准基本上是您能找到的最权威的文档:什么是格式正确的 C 代码,什么不是格式正确的 C 代码。
-
我没有印刷版,也没有在网上找到。可能我的搜索词很弱。不过,我会发誓“C 标准”或“ANSI C”或“C99”在那里。
标签: c c-preprocessor