-sG_VALUE_INIT
の初期化に使用します。GValue
それらの (プライベート) 構造は、適切に/usr/include/glib-2.0/gobject/gvalue.h
どのようになってい#define G_VALUE_INIT
ます。
それが GCC のバグであるというあなたの評価には強く反対します。フィールドが明示的に初期化されていない場合に警告するように要求すると-Wmissing-field-initializers
、それに値する警告が表示されます。
残念ながらG_VALUE_INIT
文書化されていませんが、ここにあります。コード
GValue value = G_VALUE_INIT;
要求された場合に、フィールドの初期化が欠落しているという警告が表示されないようにする普遍的な解決策はありません-Wmissing-field-initializers
。このような警告を要求するときは、不完全なイニシャライザをすべて警告するようコンパイラに要求します。実際、標準では、明示的に初期化されていないすべてのstruct
フィールドをゼロにする必要がありgcc
、標準に従います。
次のような診断プラグマを使用できます
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
しかし、私の感覚では、慎重にコーディングし、すべてのフィールドを明示的に初期化する必要があります。表示される警告は、バグの警告というよりもコーディング スタイルの警告 (フィールドを忘れた可能性があります) です。
また、初期化を意図している場合は、独自の(パブリック)マクロを初期化struct
する必要があると思います。#define
struct