不接受常量类型作为常量初始值设定项
const-type is not accepted as constant initializer
以下(简化的)代码段导致
error C2099: initializer is not a constant
在此代码段的最后一行:
static const char rowmans_1_width = 16;
...
const char rowmans_width[96] = {rowmans_1_width, rowmans_2_width, rowmans_3_width,...
所以 rowmans_1_width 被定义为 "const" 但编译器仍然抱怨它不是常量。当我将其编译为 C 代码时会发生这种情况,当作为 C++ 使用时它运行顺利。
我的问题:我现在必须使用 C 编译器,我不能简单地使用
#define rowmans_1_width 16
因为我不得不在非常不同的位置上做出很大的改变 - 意味着简单的 search/replace 是行不通的。那么,有什么办法可以解决这个问题吗?
谢谢!
没错,与 C++ 不同,const
C 中的变量不是常量表达式。
我认为除了使用预处理器之外没有其他可移植的方法:
#define rowmans_1_width 16
以下(简化的)代码段导致
error C2099: initializer is not a constant
在此代码段的最后一行:
static const char rowmans_1_width = 16;
...
const char rowmans_width[96] = {rowmans_1_width, rowmans_2_width, rowmans_3_width,...
所以 rowmans_1_width 被定义为 "const" 但编译器仍然抱怨它不是常量。当我将其编译为 C 代码时会发生这种情况,当作为 C++ 使用时它运行顺利。
我的问题:我现在必须使用 C 编译器,我不能简单地使用
#define rowmans_1_width 16
因为我不得不在非常不同的位置上做出很大的改变 - 意味着简单的 search/replace 是行不通的。那么,有什么办法可以解决这个问题吗?
谢谢!
没错,与 C++ 不同,const
C 中的变量不是常量表达式。
我认为除了使用预处理器之外没有其他可移植的方法:
#define rowmans_1_width 16