猿问

人们为什么在C ++中这么多使用__(双下划线)

我浏览了一些开源C ++代码,发现在代码中使用了很多双下划线,主要是在变量名的开头。


return __CYGWIN__;

只是想知道这是有原因的,还是仅仅是某些人编写了代码样式?我认为我很难阅读。


holdtom
浏览 2143回答 3
3回答

摇曳的蔷薇

来自C ++编程,规则和建议:根据ANSI-C标准,在标识符中使用两个下划线(__)保留给编译器内部使用。下划线(“ _”)通常用于库函数的名称(例如“ _main”和“ _exit”)。为了避免冲突,请勿以下划线开头标识符。

幕布斯6054654

除非他们认为它们是“实现的一部分”,即标准库,否则它们就不应该。这些规则是相当具体的,比其他一些建议更详细。保留所有包含双下划线或以下划线后跟大写字母开头的标识符,以供在所有范围内使用该实现,即,它们可用于宏。此外,所有其他以下划线开头的标识符(即后跟另一个下划线或大写字母的标识符)都保留给全局范围内的实现。这意味着您可以在自己的名称空间或类定义中使用这些标识符。这就是为什么Microsoft在其许多核心运行时库函数(不属于C ++标准)中使用带下划线的函数名,并用小写表示的原因。这些函数名称保证不会与标准C ++函数或用户代码函数冲突。

开满天机

前面的评论是正确的。 __Symbol__通常是有用的编译器(或预处理器)供应商提供的魔术令牌。也许其中使用最广泛的是__FILE__和__LINE__,它们由C预处理程序扩展以指示当前的文件名和行号。当您要记录某种程序断言失败(包括错误的文本位置)时,这很方便。
随时随地看视频慕课网APP
我要回答