Tim*_*nes 9 c macros optimization clang
使用gcc进行编译__OPTIMIZE__时,将在启用优化时定义宏(请参见此处).这会启用运行时警告,如下所示:
#ifndef __OPTIMIZE__
printf("[WARNING] COMPILED WITHOUT OPTIMISATIONS\n");
#endif
Run Code Online (Sandbox Code Playgroud)
clang有类似的宏吗?我在这里的文档中找不到一个.
或者,更好的是,有没有办法在所有编译器中运行?
在__OPTIMIZE__宏观上也存在铛,似乎相同的方式工作在海湾合作委员会(你的例子代码工作正常).
我还没有找到关于此的具体文档,但我怀疑你链接的页面列出了gcc未采用的一些特定于clang的宏.编辑:这不是严格正确,因为__COUNTER__在gcc中也存在.
我想这个问题属于clang的"使命",尽可能与gcc兼容:
Clang驱动程序和语言功能被有意设计为尽可能与GNU GCC编译器兼容,从而简化了从GCC到Clang的迁移.在大多数情况下,代码"只是工作".
来源:http://clang.llvm.org/docs/UsersManual.html#id4
此外,这个小命令对列出编译器使用的宏很有用:
cc -dM -E -x c [options] /dev/null
Run Code Online (Sandbox Code Playgroud)
它适用于gcc,clang和其他一些编译器.
编辑:看起来它毕竟记录在...代码:)
__OPTIMIZE__是Clang实现的GNU扩展,但MSVC没有.那里有一个很好的等价物吗?
来源:https://github.com/llvm-mirror/clang/blob/master/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h#L84
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |