huya22   5년 전

문제를 맞췄긴 했습니다 그런데 왜 int main()은 가능한데 void main()은 안되는 것인지 궁금합니다.

제가 이해한 바로는 반환 값이 없으면 void main()은 사용할 수 있다고 알고 있는데 제가 어떤 부분에서 이해를 잘못한 것인지를 모르겠습니다 알려주십쇼

jung2381187   5년 전

세상 모든 프로그램은 최종적으로 0을 반환해야 합니다. 그래서 main 함수를 void로 선언하거나, main에서 return 1 등 0이 아닌 수를 반환하면 에러가 납니다.

bupjae   5년 전

main 함수가 int를 반환해야 한다는 건 C/C++ 언어의 규칙 입니다.

int x[10]; 이라고 선언했으면 x[0] ~ x[9] 까지만 사용해야 한다는 규칙이 있는 것과 동등한 것이라 생각하면 됩니다.

trimind   5년 전

궁금해서 구글링을 좀 해봤는데,

  1. C++에서는 int main만 가능
  2. 오래된 몇몇 C 컴파일러는 void main 가능
  3. " pre-standard 시절 아무런 type 을 지정하지 않으면 암시적으로 int 를 리턴했었는데..
    그러다가 void 가 도입되면서 아무런 type 을 지정하지 않던 습관이 void 로 대체되었고..
    그 바람에 main() -> void main() 으로 쓰는 사람이 생겼다" 는 썰
    1. 그래서 몇몇 교수님들은 void main이 맞다고 주장한다고 하는 경우가 있다
  4. main의 리턴 값으로 이 프로그램이 정상적으로 종료되었는지 확인하기 때문에 int main을 써야한다

댓글을 작성하려면 로그인해야 합니다.