gpt4 book ai didi

c - -Wall 无 -Wreturn-type

转载 作者:太空狗 更新时间:2023-10-29 16:03:47 24 4
gpt4 key购买 nike

根据 GCC 手册,-Wreturn-type 选项通过 -Wall 启用。但是,我找不到在保持 -Wall 的其余部分启用的同时禁用它的正确方法。

考虑这段代码:

func() {}

如果在没有警告的情况下编译,则不会产生任何输出。现在,如果我打开 -Wall,将出现以下几行:

$ gcc fn.c -Wall
fn.c:1: warning: return type defaults to ‘int’
fn.c: In function ‘func’:
fn.c:1: warning: control reaches end of non-void function

好的,一切都很好。现在,如果使用 -Wreturn-type 编译,会产生相同的输出:

$ gcc fn.c -Wreturn-type
fn.c:1: warning: return type defaults to ‘int’
fn.c: In function ‘func’:
fn.c:1: warning: control reaches end of non-void function

因此,我得出结论,-Wreturn-type 是造成这些警告的原因。但也许不是,或者我正在做更糟糕的事情,因为这预计不会产生任何输出:

$ gcc fn.c -Wall -Wno-return-type
fn.c:1: warning: return type defaults to ‘int’

是否可以使用 -Wall 但完全禁用 -Wreturn-type?还是我错过了另一个可用选项?

如果重要的话,我在 Mac OS 10.7 (Darwin 11) 和 GCC 4.2.1 上(奇怪的是,用 LLVM 编译 :P)

最佳答案

您可以使用 -Wno-implicit-int 来禁用该警告:

gcc -c -Wall -Wno-return-type -Wno-implicit-int fn.c

但是,这可能会导致您可能希望看到的其他警告被禁用。例如,它会抑制有关这样声明的变量的警告:

static x = 1;

选择你的毒药。

关于c - -Wall 无 -Wreturn-type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com