이 코드는 왜 메인함수가 9를 return하는 건지 아시는 분?

ISO/IEC 9899:201x Committee Draft — April 12, 2011에 5.1.2.2.3 Program termination에 보면

..reaching the } that terminates the main function returns a value of 0.

라고 해서 main()에 특별히 return값을 안정했을 때는 0을 자동으로 return해 준다고 돼 있는데 이 코드는 다른 값을 return합니다.

소스코드

#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);
}

컴파일 :

gcc test.c
./a.out sum is 15 echo $? 9 //0이 와야 되는데 9가 나왔음

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.