我偶然发现在C / C ++中我可以自己初始化变量:
#include <stdio.h>
static const int foo = foo;
int main() {
int bar = bar;
printf("%i, %i", foo, bar);
}
根据编译器版本,我会得到不同的结果:
那些只是在我的机器上打印“0,0”:
这个错误:
foo.c:2:28: error: initializer element is not constant static const int foo = foo; ^
为什么这会起作用,预期的行为是什么?