入れ子の構造体の初期化について – プログラミング – Home

入れ子の構造体の初期化について
 
通知
すべてクリア

[解決済] 入れ子の構造体の初期化について


もも
 もも
(@もも)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

タイトルの通りですが、入れ子になっている構造体の初期化について教えてください。

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}};
でも意図した初期値になってくれません。

入れ子になっている場合の初期化の方法としてググってみたりもしたんですが、正解がつ
かめないです。

どうか教えていただけないでしょうか?
よろしくお願いいたします。


引用未解決
トピックタグ
もも
 もも
(@もも)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

すいません、自己解決いたしました。

{255,{0},{{{0},255,},{{0},255,},{{0},255,}},};

で出来ました。
こんな初歩的な質問はどなたも参照されることは無いとは思いますが・・・

掲示板を汚してしまうことになってしまい申し訳ございませんでした。
次回からはもっと自分で調べて試してから質問いたします。


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

結果として問題ないでしょうが、余計な ,文字がたくさんあります。
余計な ,文字を省くと、
{255, {0}, {{{0}, 255}, {{0}, 255}, {{0}, 255}}};
かな。


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

好みの問題ですが、この様な初期化は、

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;)。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました