Il seguente codice compilato ed eseguito, ma mi aspetto un avvertimento quando si compila:GCC non emette un avviso quando si compila
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x = 10;
printf("%p\n",&x);
return EXIT_SUCCESS;
}
GCC,from an online compiler con argomento della riga di comando
-Wall -std=gnu99 -O2 -o a.out source_file.c -pedantic -Wextra
dà il seguente avviso quando compilazione
source_file.c: In function ‘main’:
source_file.c:7:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘int *’ [-Wformat=]
printf("%p\n",&x);
perché non ho aggiunto un (void*)
gettato prima &x
come %p
si aspetta un argomento di tipo void*
.Ma quando compilo usando
gcc SO.c -o so -Wall -Wextra -pedantic -std=c11
o
gcc SO.c -o so -Wall -Wextra -pedantic -std=c99
o
gcc SO.c -o so -Wall -Wextra -pedantic -std=c89
GCC (nel mio PC) non non emettere un avviso mentre compila (di nuovo nel mio PC) usando
gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu11
o
gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu99
o
gcc SO.c -o so -Wall -Wextra -pedantic -std=gnu89
o
gcc SO.c -o so -Wall -Wextra -pedantic
ricevo l'avviso di cui sopra. Perché è così? La mia versione GCC è 4.8.1 e sto usando Windows. Compilo dalla console, cioè cmd
.
È mingw gcc, cygwin gcc o qualcos'altro? – ouah
@ouah, non lo so esattamente, ma usando 'gcc -v' mostra' Target: mingw32'. Quindi suppongo che mingw gcc –