2

以下代码片段在 C++ 中完全有效(至少已编译):

我的文件.cxx:

static const int MY_CONST_ONE = 1;
static const int MY_CONST_TWO = MY_CONST_ONE;

另一方面,在 C 中编译完全相同的代码会失败并显示错误消息 ( http://ideone.com/erBkm9 ):

my_file.c:2:1: error: initializer element is not constant

我的文件.c:

static const int MY_CONST_ONE = 1;
static const int MY_CONST_TWO = MY_CONST_ONE;

是什么原因?它是编译器特定的还是一些已知的 C 与 C++ 的区别?

4

1 回答 1

7

基本上,constC 中的变量不被视为编译时常量。因此,需要编译时常量的地方不能const变量中获取它们的值。

于 2013-03-13T16:03:05.730 回答