ㄷ
C 프로그래밍 언어에서 함수 서명에 매개변수가 없으면 여러 인수를 입력으로 사용할 수 있지만 C++에서는 그렇지 않습니다. C++에서 이러한 함수에 인수가 전달되면 컴파일이 실패합니다. 이것이 int main() 및 int main(void)이 C에서 동일한 이유이지만 int main(void)이 더 나은 접근 방식이므로 사용자가 main 함수에 여러 인수를 전달하도록 제한합니다.
예(C)
#include <stdio.h>
int main() {
static int counter = 3;
if (--counter){
printf("%d ", counter);
main(5);
}
} 출력
2 1
예시(C++)
#include <iostream>
using namespace std;
int main() {
static int counter = 3;
if (--counter){
cout << counter;
main(5);
}
} 출력
main.cpp: In function 'int main()': main.cpp:10:13: error: too many arguments to function 'int main()' main(5); ^ main.cpp:5:5: note: declared here int main() ^~~~