这只是我工作的一个问题所以我做了一点挖掘,答案是ExpertExchange.所以我把你交给最初的问题提问者,Manchung:
我有一个用纯C编写的项目,用于嵌入式系统.所以,我使用纯C来最小化代码大小.
当我编译项目时,我使用-ansi标志以确保代码符合ANSI标准.但是,使用这个ansi标志的缺点是我只允许使用C样式的注释(/*comments*/).当我需要使用嵌套注释时,这让我很头疼.
所以,我的问题是:我可以使用哪些开关/标志来允许我在保持同时启用ANSI检查的同时使用C++样式的注释(//注释)?
这也几乎总结了我的问题.
在最近发布的gcc中,-ansi
记录为与之相同-std=c89
.新的注释语法仅适用于C99标准,因此-std=c99
允许使用.
还有-std=gnu89
,它-std=c89
允许所有gcc扩展(包括C++风格的注释语法,在它被添加到标准之前很久就是GNU扩展).
还要看一下-pedantic
标志,它可以给你一些有用的警告.
参考文献:
http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
如果你想仅仅因为想要注释掉块而使用C++样式注释,并且对嵌套/*...*/感到头疼,你可以使用这种技术:
#if 0 ... code ... #endif
这实际上也可以完成这项工作.
您可以使用-lang-c-c ++ - 注释预处理器同时具有ANSI模式和C++风格的注释.
gcc -Wp,-lang-c-c++-comments -c source.c