|  |
| |
| ka0r1 |
뒤에 가면 천천히 알 수 있는 내용인데... 일단 답변은 해드릴께요.
main은 함수이름이고 main앞에 나오는 int는 정수형으로 값을 반환하겠다는 겁니다.
int addsum(int a, int b);
{
return a+b;
}
int main(void)
{
.
.
.
printf("%d\n", addsum(10, 20));
.
.
.
}
위의 값은 10과 20을 인자로 넘겨서 30이 출력이 되는 프로그램인데요.
이렇게 위의 소스처럼 함수를 프로그래머가 만들 수도 있습니다.
그런데 여기서 의문을 가질 겁니다.
어째서 main 함수가 프로그램의 시작점인데, 반환하는 값(int)가 존재하느냐? 이겁니다.
그 해답은 바로 응용프로그램(애플리케이션)이 한차원위에 있는 운영체제(OS)에게 값을 반환한다는 겁니다.
모든 프로그램은 실행시에 운영체제가 관리감독하에 메모리에 올라가서
cpu와 기타 디바이스 장치등과 통신을 하면서 구동되게 됩니다.
return 0;은 0을 반환하므로서 운영체제에게 프로그램이 정상적으로 끝났다는걸 알리는 겁니다. |
2012/12/10 |
|
| qhrkd93 |
흠 제가 아직 응용프래그램,운영체제,cpu.기타 디바이스장치 이런거에 대한 개념도 없고 배운게 없어가지고 일단 이런단어들이 나오면 어렵고 이해가 안가는 부분이 있긴한데 그래도 답변해주셔서 감사해요 차차 배우면서 이해갈 날이 올것이고
또 궁금한게 한 가지 있는데요
return 0;이 0을 반환하므로서 운영체제에게 프로그램이 정상적으로 끝났다는걸 알리는 것이라고 하셨는데
여기서
int main()
{
}
이런식으로 return 0;을 빼고 해도 정상적인 프로그램이 될 수 있나요 ??? |
2012/12/10 |
|
| ka0r1 |
네. 리눅스에선 겉으로 봐선 아무런 문제없이 돌아갑니다만... 속은 저도 자세히는 모르겠네요. |
2012/12/10 |
|
| ka0r1 |
속은 자세히 모르겠다는 의미가... main() <- 이렇게 메인 함수를 쓰셔도 프로그램상에서 문제는 없지만i
nt형을 선언하고 값을 반환하지 않는다는게 문제가 될지 안 될지가 모르겠다는 말입니다. |
2012/12/10 |
|
| qhrkd93 |
ㅎㅎ 감사합니다
자질구래한 질문에도 모두 답해셨네요 ㅎㅎ
좋은 정보 얻었습니다. |
2012/12/10 |
|