Table 的 C++ 常量
Table of constants in C++
我正在开发一个使用 C++ 编译器 (VisualStudio 2010 C++) 的软件的项目。该软件用于制作真实电路的数值模型。我在软件的不同部分编写了一些代码,ir 是 C++ 代码,但一些变量必须有一些前缀(SeqInteger 而不是 Integer,如果 Var 是模型中连接的名称,则为 ptVar,等等......)。该软件随后生成包含我编写的代码和其中其他部分的 cpp 文件。
问题:我正在尝试启动一个包含常量值的 table,为此,我写道:
SeqReal A[4];
A[4]={1 , 2, 1 , 3};
但是,我收到了这个错误:
compiling src/SeqClass__cpl.cpp
SeqClass__cpl.cpp
src/SeqClass__cpl.cpp(74) : error C2059: syntax error : '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '}'
make: *** [WinNT\debug64/SeqClass__cpl.obj] Error 512
我知道我的行语法有误,但我应该怎么写呢?它曾经像这样为我工作。
我希望我说清楚了。我只给出了这个简单的例子,但实际上,我在尝试初始化 28*16 形状的矩阵时遇到了同样的错误。
谢谢!
您(可能)尝试声明,然后使用 brace-enclosed list 分配给 C 样式数组,这是不允许的。改为初始化:
SeqReal A[4] = {1, 2, 1, 3};
或者使用容器,例如 std::array:
std::array<SeqReal, 4> arr;
arr = {1, 2, 1, 3};
如果你想声明一个数组,稍后使用初始化列表分配给它,你可以这样做:
int i = 0;
for (int v : {1 , 2, 1 , 3})
A[i++] = v;
我正在开发一个使用 C++ 编译器 (VisualStudio 2010 C++) 的软件的项目。该软件用于制作真实电路的数值模型。我在软件的不同部分编写了一些代码,ir 是 C++ 代码,但一些变量必须有一些前缀(SeqInteger 而不是 Integer,如果 Var 是模型中连接的名称,则为 ptVar,等等......)。该软件随后生成包含我编写的代码和其中其他部分的 cpp 文件。
问题:我正在尝试启动一个包含常量值的 table,为此,我写道:
SeqReal A[4];
A[4]={1 , 2, 1 , 3};
但是,我收到了这个错误:
compiling src/SeqClass__cpl.cpp
SeqClass__cpl.cpp
src/SeqClass__cpl.cpp(74) : error C2059: syntax error : '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '}'
make: *** [WinNT\debug64/SeqClass__cpl.obj] Error 512
我知道我的行语法有误,但我应该怎么写呢?它曾经像这样为我工作。
我希望我说清楚了。我只给出了这个简单的例子,但实际上,我在尝试初始化 28*16 形状的矩阵时遇到了同样的错误。
谢谢!
您(可能)尝试声明,然后使用 brace-enclosed list 分配给 C 样式数组,这是不允许的。改为初始化:
SeqReal A[4] = {1, 2, 1, 3};
或者使用容器,例如 std::array:
std::array<SeqReal, 4> arr;
arr = {1, 2, 1, 3};
如果你想声明一个数组,稍后使用初始化列表分配给它,你可以这样做:
int i = 0;
for (int v : {1 , 2, 1 , 3})
A[i++] = v;