Jee*_*tel 5 c embedded comments
在C中,我们可以通过两种方式发表评论:
1>
/* this is one way */
Run Code Online (Sandbox Code Playgroud)
2>
// this is 2nd way
Run Code Online (Sandbox Code Playgroud)
两者有什么区别?
这个比那个好吗?
要么
两者在任何平台上的编译或处理都有相同的影响和差异吗?
编辑:特别是为嵌入式编写代码
从技术上讲,只保证第一种方式适用于所有编译器,无论是现在还是过去.实际上,自20世纪80年代中期以来实施的所有C编译器都实现了两种方式,因此,除非您要编写遗留编译器,否则您可以采用哪种方式最适合您或您的组织.
只需使用更方便和自然的任何一种.简短的评论,一小撮话,在短线的末尾与之合作得很好//.传统/* ... */风格可能更好,更多的评论,分布在多条线上.无论如何,这一切都归结为个人偏好和团队的编码标准.
它对编译过程没有任何影响.
不使用//评论的一个(也许是理论上的)理由是它们在C90中不受支持.确实,大多数(或许所有)现代C编译器都支持//注释,即使它们不支持C99的其余部分,但不同的编译器支持不同的C99子集.
//如果您在符合C90的模式下调用注释,任何支持C90的编译器都将拒绝(或至少警告)注释.
如果您对可移植性狂热,并且希望确保您的代码可以使用任何C编译器进行编译,那么您应该在符合C90的模式下编译它 - 这意味着//将拒绝注释.您可以启用扩展或部分(甚至完全)C99一致性,但是您也将启用其他C99功能 - 并且您的编译器不会警告您可能意外使用的其他 C99特定功能.
正如Andrew Grimm的评论指出的那样,一些项目可能有编码标准,需要一种形式或另一种形式.
例如,gcc支持//注释和long long(以及许多其他C99功能); //在gcc中启用注释会禁用诊断long long.
但是对于大多数目的而言,这可能不足以避免//评论.如果您知道哪些功能是C99特定的,哪些编译器支持这些功能,以及您关心哪些编译器,则可以编写合理的可移植代码.