【发布时间】:2013-01-13 14:09:36
【问题描述】:
我试图让gcc 闭嘴我对二进制常量的使用。它们使代码更具可读性,但阻止我使用-pedantic,否则我会遵守。我想要一个像-fnobinaryconstwarn 或类似的开关(我认为在仔细阅读手册页一段时间后不存在)或使用
#pragma GCC diagnostic ignored "-pedantic"
选择性地在短时间内禁用迂腐警告,如下所述: Selectively disable GCC warnings for only part of a translation unit? 不幸的是,这似乎不起作用。 我有哪些选择?
对于clang
#pragma GCC diagnostic ignored "-Wpedantic"
有效,而上面的行无效,但它会为gcc 生成错误。
【问题讨论】:
-
你能举一个“使用二进制常量”的例子吗?
-
与这些类似:
unsigned int piece = 0b10010101;该功能是在 gcc-4.3.0 中引入的。我实际上认为问题更严重,因为如果该特定警告没有标志,则应该可以以某种方式关闭-pedantic引入的警告。 -
gcc 应该在这些东西上更加模块化,对其所有功能都有明确的警告标志,然后
-Wall,-pedantic任何标志应该清楚地列出它们组成的所有原始标志。但这可能是一厢情愿。 -
GCC 4.8 将支持
-Wpedantic,所以#pragma可以工作 -
@JensGustedt,这就是它的工作原理。打印警告时,它会告诉您是哪个
-Wxxx选项引起的。-pedantic是一个单一功能(诊断非标准扩展),因此只有一个标志。
标签: c gcc suppress-warnings