【发布时间】:2017-04-10 11:02:22
【问题描述】:
我正在使用 gcc 在 VS2015 和 Xcode 上编译我的游戏引擎代码。
我为我的代码使用了许多编译器,只有 gcc 显示警告:
warning : missing terminating " character
代码如下:
#if 1
...
#else
asm __volatile__("
some assembly code
...
"::: );
#endif
我知道最近的 gcc 不接受字符串中的新行,但我不知道为什么 gcc 预处理器会针对错误块发出警告。
我知道我的内联汇编的写作风格很旧,但它们处于错误的条件块中。我不想碰它们,因为它们太多了。
除了抑制所有警告外,如何避免在错误条件块中出现此警告?
编辑:
我用 Armcc、Vc++(2005,2008,2012,2013,2015) 和 clang 编译了我的代码。他们不会显示这种警告,只有 GCC 会。
如果警告是针对 TRUE 条件块中的代码的,我会修复它们。但此警告适用于不应评估的 FALSE 条件块。
【问题讨论】:
-
你看过这个answer 吗?
-
@Carpetsmoker:问题不是关于“缺少终止字符”错误本身(OP 非常清楚它丢失了),而是关于为什么它发生在看似 disabled 一段代码。
标签: gcc c-preprocessor warnings