[解決済み] C言語標準に準拠した構造体の初期化方法
2022-03-09 23:26:50
質問
struct要素の初期化を、宣言と初期化で分けて行いたい。こんな感じです。
typedef struct MY_TYPE {
bool flag;
short int value;
double stuff;
} MY_TYPE;
void function(void) {
MY_TYPE a;
...
a = { true, 15, 0.123 }
}
のローカル変数を宣言し、初期化する方法でしょうか?
MY_TYPE
C言語の規格(C89、C90、C99、C11など)に従って?それとも、もっと良いもの、少なくとも動作するものがあるのでしょうか?
更新情報 結局、静的な初期化要素を持っていて、必要に応じてすべてのサブエレメントを設定しました。
解決方法は?
(ANSI)C99の場合、(ANSI)C99と同じように 指定イニシャライザー を使用して構造体を初期化します。
MY_TYPE a = { .flag = true, .value = 123, .stuff = 0.456 };
その他のメンバーはゼロとして初期化されます: "省略されたフィールドメンバーは、静的記憶期間を持つオブジェクトと同じように暗黙のうちに初期化されます" ( https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html )
関連
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] 配列のすべてのメンバーを同じ値で初期化するには?
-
[解決済み] HashSetの値を構造的に初期化する方法は?
-
[解決済み] std::vectorをハードコードされた要素で初期化する最も簡単な方法は何ですか?
-
[解決済み] C++で静的プライベートメンバを初期化する方法は?
-
[解決済み] 構造体変数をコンソールに表示するには?
-
[解決済み] Javaで配列を初期化する方法は?
-
[解決済み】C#で空の配列を初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み】makefile:4。*** missing separator. 停止する