Comment faire pour supprimer l'avertissement dans gcc 4.6: manque d'initialiseur [-Wmissing-champ-des initialiseurs]?

Le code:

  GValue value = { 0 };

Donner l'avertissement suivant:

manque d'initialiseur [-Wmissing-champ-des initialiseurs]

Je sais que c'est un gcc BUG; mais est-il une astuce pour l'enlever? vraiment pas agréable de voir une telle irréel avertissements. Mais je ne veux pas éteindre l'avertissement, car il sera caché réel avertissements de moi aussi. A désolé, mais je ne peux pas mettre à jour mon gcc 4.7(où on dirait que c'est fixe) de la version, encore.

Je doute fortement que c'est un bug de gcc. Pourriez-vous nous montrer la définition de la structure de GValue.
c'est juste un exemple; je suis à la recherche d'une solution qui fonctionne pour tout struct.
Je pense que nous pouvons supposer que c'est un GLib GValue — ce qui signifie qu'il a plus d'un membre (et en effet, ce qui vaut la peine struct ne pas avoir plus d'un membre?)
indépendant de la façon dont de nombreux membres de la structure ont, en utilisant {0} tous les membres doivent être à 0. Il est décrit dans la norme C, comme vous pouvez le voir dans le lien dans mon post.
Il n'y a pas de bug. Selon la norme, une mise en œuvre conforme peut émettre des messages de diagnostic pour quelque raison que ce soit, y compris des raisons esthétiques, tant qu'il accepte toujours valide les programmes (c'est à dire c'est un avertissement et non une erreur). Vous pouvez désactiver cet avertissement spécifique.

OriginalL'auteur Jack | 2012-11-14