我浏览了一些开源C ++代码,发现在代码中使用了很多双下划线,主要是在变量名的开头。return __CYGWIN__;只是想知道这是有原因的,还是仅仅是某些人编写了代码样式?我认为我很难阅读。
3 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
来自C ++编程,规则和建议:
根据ANSI-C标准,在标识符中使用两个下划线(__)保留给编译器内部使用。
下划线(“ _”)通常用于库函数的名称(例如“ _main”和“ _exit”)。为了避免冲突,请勿以下划线开头标识符。
幕布斯6054654
TA贡献1876条经验 获得超7个赞
除非他们认为它们是“实现的一部分”,即标准库,否则它们就不应该。
这些规则是相当具体的,比其他一些建议更详细。
保留所有包含双下划线或以下划线后跟大写字母开头的标识符,以供在所有范围内使用该实现,即,它们可用于宏。
此外,所有其他以下划线开头的标识符(即后跟另一个下划线或大写字母的标识符)都保留给全局范围内的实现。这意味着您可以在自己的名称空间或类定义中使用这些标识符。
这就是为什么Microsoft在其许多核心运行时库函数(不属于C ++标准)中使用带下划线的函数名,并用小写表示的原因。这些函数名称保证不会与标准C ++函数或用户代码函数冲突。
开满天机
TA贡献1786条经验 获得超13个赞
前面的评论是正确的。 __Symbol__
通常是有用的编译器(或预处理器)供应商提供的魔术令牌。也许其中使用最广泛的是__FILE__
和__LINE__
,它们由C预处理程序扩展以指示当前的文件名和行号。当您要记录某种程序断言失败(包括错误的文本位置)时,这很方便。
- 3 回答
- 0 关注
- 2141 浏览
添加回答
举报
0/150
提交
取消