int 기본 프로그램 실행이 끝날 때 함수가 '0'이라도 정수를 반환함을 나타냅니다. '0'은 프로그램의 성공적인 실행을 나타냅니다.
int main의 구문은 다음과 같습니다 -
int main(){ --- --- return 0; }
int main(void) 함수가 인수를 취하지 않음을 나타냅니다. 대괄호에 void를 유지하지 않으면 함수가 여러 인수를 취한다고 가정합니다.
int main(void)의 구문은 다음과 같습니다 -
int main(void){ --- --- return 0; }
사실 둘 다 같은 것 같지만 int main(void)이 기술적으로 더 낫습니다. main은 매개변수 없이만 호출될 수 있다는 점을 분명히 언급했기 때문입니다.
일반적으로 C 언어에서 함수 시그니처가 인수를 지정하지 않으면 매개변수의 수에 관계없이 또는 매개변수 없이 함수를 호출할 수 있습니다.
두 함수에 대한 코드를 구현하기 위해 동일한 논리를 사용하겠습니다. 유일한 차이점은 이러한 함수의 구문입니다.
예시 1
인수가 없는 int main() 함수에 대한 C 프로그램은 다음과 같습니다. -
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0
예시 2
아래는 동일한 프로그램이지만 int main(void) 기능이 있는 것입니다 -
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
error
int main() 및 int main(void)에 대해 동일한 코드를 작성하면 오류가 발생합니다. 이는 void가 함수가 매개변수를 사용하지 않음을 나타내기 때문에 발생합니다.
따라서 위의 예에서 main에서 인수 10을 제거하고 컴파일하십시오. 따라서 수정 후 위의 코드는 다음과 같습니다 -
예시
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(); } return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0