1

今天我看到了一个奇怪的事实(或没有)

有人说:
“不允许写长的、描述性的标识符名称,并且禁止为用 . 编写的Linux驱动程序编写注释ANSI C。”

当我问“WTF?为什么?” 我被告知它会导致性能问题和错误……
那里没有太多细节。

我很惊讶,但不得不问……
这是真的吗?
知道注释被编译预处理器剥离,
并且标识符被转换为地址。

所以......它会导致问题吗?

4

4 回答 4

3

嗯,ANSI C 是一个标准,标准本身就是每个人都must遵循的(我的意思是编译器设计者和程序员,如果他们决定支持它)。

ANSI C 标准规定导出的标识符(是的,导出的标识符按原样作为符号存储在符号表中,而不仅仅是地址)不能超过 6 个字符,非导出的标识符可以不超过 31 个字符。

在评论。除了一些明显的陷阱,例如多行注释导致意外吞下代码,我建议您阅读面向内核开发人员的Coding Style文章,其中解释了不鼓励使用哪种注释。

于 2013-08-13T08:31:53.367 回答
1

绝对不。无论您在代码中使用什么标识符,编译器都会将它们转换为符号。

此外,编译预处理器将忽略所有注释。

注释的唯一作用是帮助您更快地理解代码。

于 2013-08-13T08:31:13.603 回答
1

唯一可能对性能产生影响的注释是在编译期间,尽管我会说它可以忽略不计,除非你把整本书都写成注释。标识符名称被转换为符号,因此在编译时最多也有性能影响,这又是可以忽略的。标识符名称可能会达到最大限制,但老实说,由于标识符名称过长,我从未遇到过问题。

于 2013-08-13T08:54:33.760 回答
0

不,编译的第一步是预处理您的源代码以删除注释并执行其他技巧,例如扩展宏。

标识符通常被翻译成指针(指向符号表条目)。

于 2013-08-13T08:31:56.893 回答