簡體   English   中英

C++中的常數表

[英]Table of constants in C++

我正在使用使用 C++ 編譯器(VisualStudio 2010 C++)的軟件開發一個項目。 該軟件用於制作實際電路的數字model。 我在軟件的不同部分編寫了一些代碼,ir 是 C++ 代碼,但一些變量必須有一些前綴(SeqInteger 而不是 Integer,ptVar 如果 Var 是 Z20F35E630DAF49DFA4 中的連接名稱,等等...685DAF49DFA4)。 該軟件會生成包含我編寫的代碼和其中其他部分的 cpp 文件。

問題:我正在嘗試啟動一個包含常量值的表,為此,我寫道:

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 形狀的矩陣時遇到了同樣的錯誤。

謝謝 !

您(可能)嘗試聲明,然后使用大括號括起來的 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM