2010-11-25 4 views
2

가능한 중복 :
What are the valid signatures for C's main() function?'main'함수의 다른 유효한 프로토 타입은 무엇입니까?

'주'함수의 다른 유효한 프로토 타입은 무엇입니까?

일부 업체에서만 지원되는 일부 비표준 프로토 타입이 있습니까?

+0

[C의 main() 함수에 대한 유효한 서명은 무엇입니까? ] (http://stackoverflow.com/questions/2108192/what-are-the-valid-signatures-for-cs-main-function). –

+0

일부 컴파일러도 void main()을 지원합니다. – Shweta

답변

2

gcc가 허용하는 최대의 프로토 타입은 다음과 같습니다

int main(int argc, char * argv[], char *envp[]) 

하지만 envp가 거의 사용되지 않습니다. argcargv을 생략해도 허용되는 것으로 간주됩니다. 모든 OS가 자신의 추가 비표준 항목이,

int main(void); 

또는 그 외에는

int main(int argc, char **argv); 

:

+1

'envp'는 C.에 지정되어 있지 않습니다. C는 Alex가 나열한 두 가지를 포함하지만, 다른 구현 정의 방식을 허용합니다. –

+0

@Matthew : 흥미롭게도'gcc -pedantic'은'envp'에 대해 불평하지 않습니다. –

+1

물론 아닙니다. GCC가 추가 매개 변수를 문서화하는 한 표준에 따라 구현 정의 된 추가 프로토 타입이 표준에 부합합니다. –

3

C 표준 (§ 5.1.2.2.1)는 두 진입 점 프로토 타입을 정의 전철기. WinMain 등

관련 문제