C 기본 함수 서명 수정자: Unsigned 및 Const 이해
C 언어 표준은 두 개의 유효한 서명으로 기본 함수를 정의합니다.
int main(); int main(int, char*[]);
그러나 의문이 생깁니다. unsigned 및 const 한정자를 추가하는 등 이러한 서명을 수정하는 것이 C 표준에서 허용됩니까?
C 98 표준, 섹션 3.6.1 단락 2 , main이 오버로드될 수 없음을 명시적으로 나타냅니다. 또한 main의 반환 유형을 int로 정의하며 전체 유형 정의는 구현에 따라 다릅니다. 모든 구현은 위에 나열된 두 개의 사전 정의된 서명을 지원해야 합니다.
그러나 표준은 특히 추가 한정자가 있는 기본 기능을 허용하는 환경의 구현을 금지하지 않습니다. 이는 표준에서 요구하는 것은 아니지만 특정 환경에서 main의 허용되는 서명을 확장하는 것이 허용된다는 것을 의미합니다.
구체적으로 다음과 같이 main의 서명 인수에 const 및 unsigned 한정자를 추가합니다. 예는 특정 구현에서 지원될 수 있습니다.
int main(const unsigned int, const char* const* argv);
따라서 표준에 의해 보편적으로 보장되지는 않지만 일부 컴파일러에서는 이러한 수정을 허용할 수 있습니다. 그러나 이 동작은 구현에 따라 다르며 표준 호환 코드에 의존해서는 안 된다는 점에 유의하는 것이 중요합니다.
위 내용은 'unsigned' 및 'const' 한정자를 사용하여 C에서 'main' 함수 서명을 수정할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!