gcc:switch或pragma来抑制"%p"格式化非void指针的警告?

时间:2015-01-15 23:51:46

标签: c++ gcc

如果%p格式说明符的参数不是void*,是否存在使gcc不抱怨的神奇咒语?

一个pragma是理想的,因为我可以把它放在我的标准编译器配置头中,所以一劳永逸地保存问题,而不是每次都要弄乱project / make文件......

通常我更喜欢与所有编译器相同的-Wall -Wextra -Wpedantic,因为清洁源上的警告通常表明我的错误,或者编译器可能正在丢失情节。但是,我发现使用多余的演员表来混淆我的源代码没有任何可能的好处(C风格不会少,我多年没用过,或者超长的超混乱),所以这个特别警告需要走开。

附录:我知道typedef和/或模板可以将内联杂乱减少到一个字母和一对parens,但它们需要额外的外部杂乱。这些东西是噪音,它降低了清晰度和表现力,而不是改善它们。

然而,我不想要这个警告是我的选择,我的目标是让它消失。无论如何,这是相当愚蠢的,因为实际出现的指针问题(近,远,基,等等)与指针的空洞正交...并且为了抢占其他潜在的反对意见,我谈的是普通数据指针,不是函数指针,成员指针,闭包或诸如此类的东西。我是否需要将某些东西移植到像Konrad Zuse的Z1这样的古怪平台上,然后我可以调整编译器配置标头以禁止在该特定平台上发出警告......

1 个答案:

答案 0 :(得分:0)

似乎没有这样的选择。 GCC的-Wformat系列选项会记录在案here(搜索-Wformat)。如果你想要做什么切换,我希望能在这里找到它。