컴파일러 오류 C2733
'C' 링크로 함수를 오버로드할 수 없습니다.
두 개 이상의 오버로드된 함수가 링크와 함께 extern "C"
선언됩니다. 링크 사용 "C"
시 지정된 함수의 한 형태만 외부에 있을 수 있습니다. 오버로드된 함수의 이름이 같으므로 C 프로그램에서 사용할 수 없습니다.
이 오류는 Visual Studio 2019의 규칙 변경으로 인해 업그레이드 후에 발생할 수 있습니다. Visual Studio 2019 버전 16.3 /Zc:externC-
부터 컴파일러 옵션은 이 검사를 완화합니다. 이 옵션은 명령줄의 옵션 /permissive-
이후에 와야 합니다.
예시
다음 샘플에서는 C2733을 생성합니다.
// C2733.cpp
extern "C" {
void F1(int);
}
extern "C" {
void F1(); // C2733
// try the following line instead
// void F2();
}
참고 항목
컴파일러 오류 C2116
extern
(C++)
/Zc:externC
(표준 C++ extern "C"
규칙 사용)