GCC no emite una advertencia al compilar [duplicar]
Esta pregunta ya tiene una respuesta aquí:
MinGW no produce advertencias 1 respuestaEl siguiente código se compila y se ejecuta, pero espero una advertencia al compilar:
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x = 10;
printf("%p\n",&x);
return EXIT_SUCCESS;
}
GCC, de un compilador en línea con argumento de línea de comando
-Wall -std=gnu99 -O2 -o a.out source_file.c -pedantic -Wextra
da la siguiente advertencia al compilar
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);
porque no he agregado un(void*)
emitido antes&x
como%p
espera un argumento de tipovoid*
. Pero cuando 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 (en mi PC) haceno dar una advertencia al compilar (nuevamente en mi 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
Recibo la advertencia mencionada anteriormente. ¿Por qué es así? Mi versión de GCC es 4.8.1 y estoy usando Windows. Compilo desde la consola, es decir,cmd
.