Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The /Zc:externC compiler option tells the compiler to conform to the C++ standard and enforce consistent parameter declarations for functions declared as extern "C".
Syntax
/Zc:externC
/Zc:externC-
Remarks
The /Zc:externC compiler option checks the definitions of functions declared by using extern "C".
The /Zc:externC option is available starting in Visual Studio 2019 version 16.3. It's off when the /permissive- option isn't set. In earlier versions of Visual Studio, and by default or if /Zc:externC- is specified, Visual Studio is permissive about matching declarations of extern "C" functions. The /permissive- option enables /Zc:externC, so it's on by default in projects that use /std:c++20 or /std:c++latest. The /Zc:externC option must come after a /permissive- option on the command line.
Mismatched extern "C" declarations can cause compiler errors C2116 and C2733. In C++ code, an error can occur if you declare an extern "C" function more than once and use different parameter types, even if the types have the same definitions. The /Zc:externC- option relaxes this check, and doesn't produce these errors.
To set this compiler option in Visual Studio
Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.
Select the Configuration Properties > C/C++ > Command Line property page.
Add
/Zc:externCor/Zc:externC-to the Additional options: pane.