Compiler Error C2733
you cannot overload a function with 'C' linkage
More than one overloaded function is declared with extern "C"
linkage. When using "C"
linkage, only one form of a specified function can be external. Since overloaded functions have the same undecorated name, they can't be used with C programs.
This error may occur after an upgrade because of conformance changes in Visual Studio 2019. Starting in Visual Studio 2019 version 16.3, the /Zc:externC-
compiler option relaxes this check. The option must come after any /permissive-
option on the command line.
Example
The following sample generates C2733:
// C2733.cpp
extern "C" {
void F1(int);
}
extern "C" {
void F1(); // C2733
// try the following line instead
// void F2();
}
See also
Compiler Error C2116
extern
(C++)
/Zc:externC
(Use Standard C++ extern "C"
rules)
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for