Ich habe den folgenden Code.Warum generiert 'typeof enum constant' eine Warnung im Vergleich zu einer Variablen vom Typ enum?
typedef enum {FOO, BAR} Baz;
int main()
{
Baz f1 = FOO;
typeof(FOO) f2 = FOO;
return (f1 == f2);
}
Meine Kompilation gcc -Wextra foo.c
mit einer Warnung sagen
foo.c: In function ‘main’:
foo.c:7:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (f1 == f2);
^
Meine gcc Version
gcc --version
gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
Wie kann ich dieses Problem beheben?
http: // Stapelüberlauf.com/questions/10582523/how-are-integer-types-implizit konvertiert (falsches Duplikat, da die akzeptierte Antwort falsch ist) – Lundin
Es ist erwähnenswert, dass 'typeof' eine Gcc-spezifische Erweiterung ist. –