Estaba leyendo¿Por qué main no devuelve 0 aquí?
ISO/IEC 9899: 201x Comité Proyecto - 12 de abril 2011
en el que he encontrado por resolución 5.1.2.2.3 Programa
..reaching the } that terminates the main function returns a value of 0.
que significa si no especifica ninguna declaración de devolución en main()
, y si el programa se ejecuta con éxito, entonces en el corchete de cierre} de main devolverá 0.
Pero a la vista debido código que no se especifica ninguna instrucción de retorno, sin embargo, no devuelve 0
#include<stdio.h>
int sum(int a,int b)
{
return (a + b);
}
int main()
{
int a=10;
int b=5;
int ans;
ans=sum(a,b);
printf("sum is %d",ans);
}
compilar
gcc test.c
./a.out
sum is 15
echo $?
9 // here it should be 0 but it shows 9 why?
¿Compiló con un compilador C99 (o superior)? – pmg
+1 por tener la paciencia de leer las especificaciones ..... – Asher
tengo compilación con gcc sin opción/bandera adicional? –