-ansi disabilita alcune funzionalità del compilatore, che si manterrà fedele allo standard ANSI c89 (o C++ 98, se compili un progetto in C++).
-pendatic solleva tutti i warning su pezzi di codice che non seguono strettamente lo standard:
codice:
#include <stdio.h>
int main()
{
int i;
printf("ciao\n");
int j;
}
Genera:
codice:
anto@anto-net:~/desktop$ gcc -ansi -pedantic main.c
main.c: In function ‘main’:
main.c:9: warning: ISO C90 forbids mixed declarations and code
-Wall abilita diversi flag di warning, mostrati quando si presentano situazioni strane.
Ad esempio:
codice:
#include <stdio.h>
int main()
{
int i;
printf("%d\n", i);
}
Genera i warning:
codice:
anto@anto-net:~/desktop$ gcc -Wall main.c
main.c: In function ‘main’:
main.c:8: warning: control reaches end of non-void function
main.c:7: warning: ‘i’ is used uninitialized in this function
Senza -Wall non li avresti.
-Wextra ne attiva ancora altri. In pratica dovresti averli attivi tutti aggiungendo anche Wextra (se non ricordo male, lo trovi anche come -W, la vecchia sintassi)
Talvolta utilizzo anche -Werror. Dove trova un warning, lo tratta come un errore, quindi la compilazione non va a buon fine.