タイトルの通りですが、入れ子になっている構造体の初期化について教えてください。
typedef struct{
char chAName[18];
unsigned char uchF;
} ST_PRESET;
typedef struct{
unsigned char uchMF;
char chManual[18];
ST_PRESET stPreset[3];
} ST_SETTING;
上記のような構造体の定義にて、
ST_SETTING m_stSetting;
という変数を初期化するにはどうしたら良いですか?
ちなみに入れたい値はそれぞれ
chAName:0クリア
uchF:255
uchMF:255
chManual:0クリア
です。
ST_SETTING m_stSetting = { 255, {0}, { {0}, 255}};
としても、
ST_SETTING m_stSetting = { 255, {0}, { {0}, 255},{0}, 255},{0}, 255}};
でも意図した初期値になってくれません。
入れ子になっている場合の初期化の方法としてググってみたりもしたんですが、正解がつ
かめないです。
どうか教えていただけないでしょうか?
よろしくお願いいたします。
すいません、自己解決いたしました。
{255,{0},{{{0},255,},{{0},255,},{{0},255,}},};
で出来ました。
こんな初歩的な質問はどなたも参照されることは無いとは思いますが・・・
掲示板を汚してしまうことになってしまい申し訳ございませんでした。
次回からはもっと自分で調べて試してから質問いたします。
結果として問題ないでしょうが、余計な ,文字がたくさんあります。
余計な ,文字を省くと、
{255, {0}, {{{0}, 255}, {{0}, 255}, {{0}, 255}}};
かな。
好みの問題ですが、この様な初期化は、
ST_SETTING m_stSetting = {
255, // uchMF
{0}, // chManual[]
{
{ {0}, 255, }, // ST_PRESET{ chAName[]; uchF;} stPreset[0]
{ {0}, 255, }, // stPreset[1]
{ {0}, 255, } // stPreset[2]
},
};
の様に書くと、わかりやすいかも。
あと、「タグなし」はやめましょう(vv;)。