Ho il seguente codice.Perché "typeof enum constant" genera un avviso se confrontato con una variabile di tipo enum?
typedef enum {FOO, BAR} Baz;
int main()
{
Baz f1 = FOO;
typeof(FOO) f2 = FOO;
return (f1 == f2);
}
mio compilazione utilizzando gcc -Wextra foo.c
genera un avviso dicendo
foo.c: In function ‘main’:
foo.c:7:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (f1 == f2);
^
La mia versione di gcc
gcc --version
gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
Come posso risolvere questo problema?
http: // stackoverflow.it/questions/10582523/how-are-integer-types-converted-implicitamente (duplicato errato, poiché la risposta accettata non è corretta) – Lundin
Vale la pena notare che 'typeof' è un'estensione specifica di gcc. –