「C」で、私が持っている:定数値の複数の構造の定数配列を正しく定義する方法は?
typedef struct
{
int aaa;
int bbb;
} My_Struct;
をそして私が初期化された値とMy_Struct
の複数のコピーが含まれている回帰テストのためだけでなく、ラベル(AAA & BBB)と一定のスクリプトを作りたいです読みやすさと便利さ。
私は構文を把握、またはこれはC.
でも、可能であれば私はそれがこれです取得することができ、最も近いことはできません。
struct
{
struct {
int aaa = 111;
int bbb = 222;
} first_script;
struct {
int aaa = 333;
int bbb = 444;
} second_script;
} const my_script_array;
しかし、どのように、私はあることを
my_script_array
を定義しますタイプ
My_Struct
の配列なので、コードに
(My_Struct)my_script_array
のようにキャストする必要はありません。
(コンパイラ注:私は、Visual-C++を使用して、このソフトウェアを編集するんだけど、それはiOS用のXcode 7.3で実行され、最終的にはそれはARM組込みプロセッサ上でコンパイルする必要があります)
次の試み:
次のコードはVisual C++ではエラーはなく、Xcodeエラー "expected;"を取得します。最初の '='の前に、また次のダースの行の前に。
// Script of multiple reference summaries
struct
{
struct
{
// WORDS:
int total_words = 1;
float all_absolute_impulse_gseconds = 2; // gravity X seconds
float all_average_absolute_impulse_gseconds = 3;
float all_positive_impulse_gseconds = 4;
float all_negative_impulse_gseconds = 5;
float x_absolute_impulse_gseconds = 6;
float x_average_absolute_impulse_gseconds = 7;
float x_positive_impulse_gseconds = 8;
float x_positive_average_impulse_gseconds = 9;
float y_absolute_impulse_gseconds = 10;
float y_average_absolute_impulse_gseconds = 11;
float z_absolute_impulse_gseconds = 12;
float z_average_absolute_impulse_gseconds = 13;
float minimum_word_duration_seconds = 14;
float average_word_duration_seconds = 15;
float maximum_word_duration_seconds = 16;
// EVENTS:
int total_events = 17;
int x_negative_transitions = 18;
int x_zero_transitions = 19;
int x_positive_transitions = 20;
int y_negative_transitions = 21;
int y_zero_transitions = 22;
int y_positive_transitions = 23;
int z_negative_transitions = 24;
int z_zero_transitions = 25;
int z_positive_transitions = 26;
int total_comparison_attributes = 27; // set by update_summary_attributes()
int final_script_record = 0;
} first;
struct
{
// WORDS:
int total_words = 28;
float all_absolute_impulse_gseconds = 29; // gravity X seconds
float all_average_absolute_impulse_gseconds = 30;
float all_positive_impulse_gseconds = 31;
float all_negative_impulse_gseconds = 32;
float x_absolute_impulse_gseconds = 33;
float x_average_absolute_impulse_gseconds = 34;
float x_positive_impulse_gseconds = 35;
float x_positive_average_impulse_gseconds = 36;
float y_absolute_impulse_gseconds = 37;
float y_average_absolute_impulse_gseconds = 38;
float z_absolute_impulse_gseconds = 39;
float z_average_absolute_impulse_gseconds = 40;
float minimum_word_duration_seconds = 41;
float average_word_duration_seconds = 42;
float maximum_word_duration_seconds = 43;
// EVENTS:
int total_events = 44;
int x_negative_transitions = 45;
int x_zero_transitions = 46;
int x_positive_transitions = 47;
int y_negative_transitions = 48;
int y_zero_transitions = 49;
int y_positive_transitions = 50;
int z_negative_transitions = 51;
int z_zero_transitions = 52;
int z_positive_transitions = 53;
int total_comparison_attributes = 54; // set by update_summary_attributes()
int final_script_record = 0;
} two;
int final_script_record = true;
} const REFERENCE_SUMMARY_SCRIPT
あなたが使用しているC++のバージョンは、何年も前から初期化リストが強化されているためです。 – infixed
CとC++の両方にタグを付けました。これらは異なる言語であり、あなたが求めているものを指定する必要があります。文章ではCと書かれているので、それはあなたが意味するものかもしれませんが、私はそれを確信できません。明確にするためにあなたのタグを編集してください。 –
CとC++は異なる言語です! –