为什么变量可以自己初始化?

时间:2016-02-12 12:17:28

标签: c++ c

我偶然发现在C / C ++中我可以自己初始化变量:

#include <stdio.h>
static const int foo = foo;
int main() {
    int bar = bar;
    printf("%i, %i", foo, bar);
}

根据编译器版本,我会得到不同的结果:

那些只是在我的机器上打印“0,0”:

  • g ++。exe(Rev1,由MSYS2项目建立)5.3.0
  • g ++(Ubuntu 4.8.4-2ubuntu1~14.04)4.8.4
  • gcc(Ubuntu 4.8.4-2ubuntu1~14.04)4.8.4

这个错误:

  • gcc.exe(Rev1,由MSYS2项目建立)5.3.0
    foo.c:2:28: error: initializer element is not constant
         static const int foo = foo;
                          ^

为什么这会起作用,预期的行为是什么?

0 个答案:

没有答案