/Zc:externC
(Usar regras extern "C"
padrão do C++)
A opção do compilador /Zc:externC
informa ao compilador se conformar ao padrão do C++ e impor declarações de parâmetro consistentes em funções declaradas como extern "C"
.
Sintaxe
/Zc:externC
/Zc:externC-
Comentários
A opção do compilador /Zc:externC
verifica as definições de funções declaradas usando extern "C"
.
A opção /Zc:externC
está disponível a partir do Visual Studio 2019 versão 16.3. Ela fica desativada quando a opção /permissive-
não está definida. Nas versões anteriores do Visual Studio e por padrão ou se /Zc:externC-
for especificada, o Visual Studio será permissivo quanto às declarações correspondentes de funções extern "C"
. A opção /permissive-
habilita /Zc:externC
, portanto, é ativada por padrão em projetos que usam /std:c++20
ou /std:c++latest
. A opção /Zc:externC
deve vir após uma opção /permissive-
na linha de comando.
Declarações incompatíveis extern "C"
podem causar erros de compilador C2116 e C2733. No código do C++, um erro poderá ocorrer se você declarar uma função extern "C"
mais de uma vez e usar tipos de parâmetros diferentes, mesmo que os tipos tenham as mesmas definições. A opção /Zc:externC-
relaxa essa verificação e não produz esses erros.
Para definir essa opção do compilador no Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Adicione
/Zc:externC
ou/Zc:externC-
ao painel Opções adicionais:.