【发布时间】:2023-03-26 16:05:01
【问题描述】:
为什么下面的编译没有错误?:
int main()
{
int x = x; //I thought this should cause an error
return 0;
}
标准在哪里解释了为什么允许这样做?
【问题讨论】:
-
您对 c++ 或 c 的答案感兴趣吗?考虑到它们有不同的标准,它们可能是不同的。
-
这是未定义的行为。
-
开启编译器警告的另一个好理由:
-Wall -Werror是你的朋友。 -
@ShafikYaghmour 我知道允许双标签问题是个坏主意:X 也许这个问题应该编辑为仅限 C++(并作为重复关闭),并发布一个新的 C 问题
标签: c++ c variables language-lawyer undefined-behavior