[解決済み] 構造体を0に初期化する
2022-05-28 06:03:23
質問
このような構造体があったとして
typedef struct
{
unsigned char c1;
unsigned char c2;
} myStruct;
この構造体を0に初期化する最も簡単な方法は何でしょうか? 次のようにすれば十分でしょうか?
myStruct _m1 = {0};
または 明示的に各メンバーを0に初期化する必要がありますか?
myStruct _m2 = {0,0};
どのように解決するのですか?
まず、一番簡単なのは(
入力が少ない
) 、そしてこれは動作が保証されており、すべてのメンバーが
0
[参照1] となります。
.
2番目の方が読みやすいですね。
どちらを選ぶかは、ユーザーの好みか、コーディング規約で定められているものによります。
[参考文献1] C99 スタンダード 6.7.8.21 を参照してください。
中括弧で囲まれたリスト内の初期化子の数が集約の要素又はメンバの数より少ない場合、又は既知のサイズの配列を初期化するために使用される文字列リテラルの文字数が配列内の要素の数より少ない場合、集約の残りは静的記憶期間を持つオブジェクトと同様に暗黙的に初期化されなければならない。
良い読み物です。
CとC++ : 自動構造体の部分的な初期化
関連
-
Cエラー [エラー] 代入_Ashesの左オペランドにlvalueが必要です-プログラマーズ・シークレット
-
[解決済み] C言語で%sを正しく使う - 超基本レベル
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] C++の'struct'と'typedef struct'の違い?
-
[解決済み] C++で静的プライベートメンバを初期化する方法は?
-
[解決済み] 標準C++/C++11,14,17/Cを使用してファイルが存在するかどうかを確認する最速の方法?
-
[解決済み] C言語標準に準拠した構造体の初期化方法
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
Solve Dev-c++ [エラー] 'for' ループの初期宣言は、C99 または C11 モードでのみ許可されます。
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] C言語で関数型プログラミングを行うためのツールにはどのようなものがありますか?
-
[解決済み] "static const" vs "#define" vs "enum"
-
[解決済み] C - Setデータ構造を実装するには?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] C言語で "unsigned long "をprintfする方法は?