gpt4 book ai didi

GCC 4.5 : Why no compiler warning on no-effect statement?

转载 作者:行者123 更新时间:2023-12-02 11:05:18 24 4
gpt4 key购买 nike

我正在使用 gcc 4.5 编译 Linux 内核模块。我刚刚注意到我有一些看起来像这样的代码:

#define NODE_ID      "string_here"

int foot(int a) {
/* snip */
NODE_ID;
NODE_ID;
/* snip */
return 0;
}

我有这两个无效语句,编译器从不生成警告告诉我它们。为什么是这样?我想知道我的项目中是否还有其他类似的声明我还没有找到。

最佳答案

它确实警告您,您只是没有在听 - 正如@Mat 在评论中所说,您需要启用 -Wall option ,它会警告你:

$ gcc test.c -c -Wall
test.c: In function ‘foot’:
test.c:5:5: warning: statement with no effect
test.c:6:5: warning: statement with no effect

或者,您可以启用 -Wunused-value仅此警告的选项,但我强烈建议使用 -Wall ,其中包括此警告和许多其他有用的警告。您也可以启用 -Wextra-pedantic甚至更多,但这些有时会给完全没问题的代码带来误报,给你的构建过程增加额外的噪音。所以要明智地使用它们。

关于GCC 4.5 : Why no compiler warning on no-effect statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17329694/

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