Il existe une version du C pour laquelle :
1) pas de type de retour => type de retour = int
2) pas de return => return 0;
Mais ce n'est pas vrai tout le temps.
Visibliment, ce n'est vrai qu'en C99 (et donc dans ton bouquin ANSI machin c'est une faute) :
chris@melange:~/tmp% cat t.c
int main(){}
chris@melange:~/tmp% gcc -Wall -Wextra t.c
t.c: In function ‘main’:
t.c:1: warning: control reaches end of non-void function
chris@melange:~/tmp% gcc -Wall -Wextra -ansi t.c
t.c: In function ‘main’:
t.c:1: warning: control reaches end of non-void function
chris@melange:~/tmp% gcc -Wall -Wextra -std=c99 t.c
chris@melange:~/tmp%