This question already has answers here:
Const correctness in C vs C++
(3个答案)
7年前关闭。
以下代码段在C++中完全有效(至少已编译):
my_file.cxx:
另一方面,在C中完全相同的代码编译失败,并显示错误消息(http://ideone.com/erBkm9):
my_file.c:
是什么原因?是特定于编译器的,还是已知的C vs C++的区别?
(3个答案)
7年前关闭。
以下代码段在C++中完全有效(至少已编译):
my_file.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
my_file.c:
static const int MY_CONST_ONE = 1;
static const int MY_CONST_TWO = MY_CONST_ONE;
是什么原因?是特定于编译器的,还是已知的C vs C++的区别?
最佳答案
基本上,C中的const
变量不被视为编译时常量。因此,需要编译时常量的地方无法从const
变量获取它们的值。
关于c++ - 常量声明-语言差异? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15390378/