gpt4 book ai didi

c - 在 C 中的 for 循环中重新声明变量

转载 作者:太空狗 更新时间:2023-10-29 17:17:10 25 4
gpt4 key购买 nike

我在 GCC 上使用 gcc prog.c -Wall -Wextra -std=gnu11 -pedantic 命令编译了以下程序编译器。我想知道,它工作正常,没有任何警告或错误。

#include <stdio.h>

int main(void)
{
for (int i = 0; i == 0; i++)
{
printf("%d\n", i);
long int i = 1; // Why doesn't redeclaration error?
printf("%ld\n", i);
}
}

为什么编译器不生成重声明变量i错误?

最佳答案

来自标准 §6.8.5.5 ( N1570 )

An iteration statement is a block whose scope is a strict subset of the scope of its enclosing block. The loop body is also a block whose scope is a strict subset of the scope of the iteration statement.

添加了强调

关于c - 在 C 中的 for 循环中重新声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47566788/

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