> 백엔드 개발 > C++ > 반환 유형이 C 함수 서명의 일부인가요?

반환 유형이 C 함수 서명의 일부인가요?

Barbara Streisand
풀어 주다: 2024-12-06 06:07:10
원래의
698명이 탐색했습니다.

Is the Return Type Part of a C   Function Signature?

C의 반환 유형 및 함수 서명

C에서 함수의 반환 유형은 일반 함수의 서명으로 간주되지 않습니다. , 함수 템플릿의 특수화가 아닌 함수를 의미합니다. 이는 동일한 이름과 매개변수 유형을 가진 함수는 반환 유형이 다르더라도 오버로드될 수 있음을 의미합니다.

함수 템플릿 전문화의 서명

그러나 함수의 경우 템플릿 전문화에서는 반환 유형이 서명에 포함됩니다. 이는 함수 템플릿 전문화의 서명에는 템플릿 자체의 서명은 물론 반환 유형 및 템플릿 매개변수 목록도 포함되기 때문입니다.

왜 함수 서명의 일부가 아닌가?

반환 유형이 일반 함수의 함수 시그니처로 간주되지 않는 이유는 C 표준에 명시적으로 명시되어 있지 않습니다. 하지만 이는 함수 오버로딩이 주로 함수의 식별자와 매개변수 유형을 기반으로 하기 때문이라고 추론할 수 있습니다.

오버로딩이 유효하지 않은 경우

에도 불구하고 반환 유형이 서명의 일부가 아닌 경우 표준에서는 다른 반환 유형을 사용하여 함수를 오버로드하는 것을 금지합니다. 이는 다음 코드가 현재 주요 컴파일러에서 컴파일 오류를 발생시킨다는 것을 의미합니다.

int f();
double f(); // invalid
로그인 후 복사

결론

C에서 반환 유형은 일반 함수의 서명이지만 함수 템플릿 특수화의 서명에는 포함됩니다. 함수를 오버로드하고 함수 템플릿으로 작업할 때 이러한 차이점을 이해하는 것이 중요합니다.

위 내용은 반환 유형이 C 함수 서명의 일부인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿