gpt4 book ai didi

c - 激活优化选项时的警告

转载 作者:IT王子 更新时间:2023-10-29 00:18:13 24 4
gpt4 key购买 nike

我在 c 程序中使用 scanf 从 STDIN 读取一个 int:

scanf("%d", &n);

当我在启用优化的情况下编译 c 程序时,我收到一些警告:

gcc main.c -lm -lpthread -O2 -o main
main.c: In function ‘main’:
main.c:45: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
main.c:50: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result

但是当我删除优化选项时,为什么我没有收到这些警告?

gcc main.c -lm -lpthread -o main

P.S:我没有使用 -Wall 或类似的东西。

最佳答案

更改优化器设置会改变编译器分析代码的程度(以及方式)。

部分程序流程分析在未启用优化(或设置不够高)时未进行,因此未发出相关警告。
您会经常看到“未使用的变量”警告 - 这些需要对代码进行超出简单编译所需的分析,因此您通常只会在启用优化的情况下才能获得它们。

(你真的应该用 -Wall 编译。)

关于c - 激活优化选项时的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061970/

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