可能重复:
主要回报是什么?
例如,以下代码编译时没有任何警告:
#include <stdio.h>
int i = i + 1;
int main(int argc, char *argv[])
{
fprintf (stderr, "%d\n", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为这在语法上是非法的,因为i它在声明之前使用,是不是?
在我看来,外观int i = i + 1;肯定是一个错误,为什么编译器没有警告呢?我使用gcc 4.5.1.