今天我被提出了一个非常事实(或不是)
有人说:Linux
编写的ANSI C
驱动程序编写注释。”
当我问“WTF?为什么?”我被告知它导致性能问题和这样的错误...
那里的细节不多。
我被贬低了,但不得不问......
这可能是真的吗?
知道评论被编译预处理器剥离,
并且标识符可以转换为地址。
所以...它会导致问题吗?
答案 0 :(得分:3)
嗯,ANSI C是一个标准,并且标准本身就是每个人都must
遵循的(我的意思是编译器设计者和程序员,如果他们决定支持它)。
ANSI C标准声明导出的标识符(是的,导出的标识符按原样存储为符号表中的符号,而不仅仅是地址)不得超过6个字符,并且未导出的标识符不得超过31个字符。字符。
评论。除了一些明显的陷阱,比如通过多行评论意外吞下代码,我建议你阅读内核开发人员的Coding Style文章,其中解释了不鼓励哪种评论。
答案 1 :(得分:1)
绝对不是。无论您在代码中使用何种标识符,它们都将被编译器转换为符号。
此外,编译预处理器将忽略所有注释。
评论的唯一效果是帮助您更快地理解代码。
答案 2 :(得分:1)
评论可以产生的唯一性能影响是在编译期间,虽然我会说它是可以忽略的,除非你把整本书都写成评论。 标识符名称被转换为符号,因此在编译时最多也会产生性能影响,这也是可以忽略的。标识符名称可能达到最大限制,但说实话,我从未遇到过问题,因为标识符名称很长。
答案 3 :(得分:0)
不,编译的第一步是预处理源代码以删除注释并执行其他技巧,例如扩展宏。
标识符通常被翻译成指针(符号表条目)。