gpt4 book ai didi

c - 在这个简单的例子中,为什么我没有从 gcc 收到 "used uninitialized"警告?

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

<分区>

How to fix this segmentation error in a sequence inverting program? 中再次出现愚蠢的未初始化变量错误.

所以我打算重复“请使用 -Wall 标志”注释,但是当我针对警告测试代码时,令我非常惊讶的是没有发现任何警告报告。

所以我将其缩减为以下内容(这段代码对于执行目的没有意义,但它说明了我想要展示的内容):

#include <stdio.h>

int main()
{

int i,len=12;

/* printf("%d\n",i); */

while(i!=len-1)
{

i++;
len--;
}

return 0;
}

使用 gcc 4.7.3 和 6.2.1 编译时使用

gcc -Wall -Wextra -pedantic

我没有收到警告,而 iwhile 循环中使用之前明显没有初始化。

现在,如果我取消注释 printf 语句,我会得到:

warning: 'i' is used uninitialized in this function [-Wuninitialized]

那么为什么在将 i 传递给 printf 而在 while 测试中却没有发出警告?

(它与 gcc failing to warn of uninitialized variable 不同,因为在我的例子中,没有分支)

(听起来像个错误,但它太微不足道了,我想知道我是不是漏掉了什么大东西。)

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