2009/04/20 12:11
[분류없음]
ANSI C 표준에 의하면 int main()이 표준이다.
main 함수는 다음과 같은 3가지 타입 중 하나로 정의되어야 한다
1. int main();
2. int main(void);
3. int main(int argc, char* argv[]);
3번의 경우 함수 인자 이름은 바뀌어도 되며, 2번째 인자가 포인터 배열이므로 이차원 포인터로 바꿔서 쓸 수 있다.
위 세가지 외에 void main() 의 경우 일반적으로는 에러가 나지 않지만
비표준이며 Borland C++ 4.5 에서 보고된 바에 의하면 프로그램이 망가질 수 있다.
일부 컴파일러(DEC C V4.1과 gcc) 에서 void main() 을 쓰는 경우 컴파일 경고를 발생시킨다.
void의 경우 정확한 return 을 하지 않음으로써 main 함수 호출이 제대로 이루어지지 않을 수 있으며 이식성이 없을 수 있다. 따라서 중요한 프로그램에서는 사용하지 말자!
위 글은 Steve Summit의 C Programming FAQs 에 나온 내용을 일부 정리한 것임을 밝힙니다.



