/Zc:__STDC__
(Ativar __STDC__
macro)
A /Zc:__STDC__
opção do compilador define a macro de pré-processador interna __STDC__
como 1 no código C.
Sintaxe
/Zc:__STDC__
Comentários
A /Zc:__STDC__
opção do compilador implementa o comportamento em conformidade com o padrão C para a macro do __STDC__
pré-processador, definindo-o como 1 ao compilar o código C11 e C17.
A /Zc:__STDC__
opção é nova no Visual Studio 2022 versão 17.2. Essa opção está desativada por padrão, mas pode ser ativada explicitamente quando /std:c11
ou /std:c17
é especificada. Não há uma versão negativa da opção.
Essa opção é uma alteração significativa na origem. Devido ao comportamento do UCRT, que não expõe as funções POSIX quando __STDC__
é 1
, não é possível definir essa macro para o C por padrão sem introduzir alterações interruptivas nas versões estáveis da linguagem.
Exemplo
// test__STDC__.c
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
int main() {
#if __STDC__
int f = _open("file.txt", _O_RDONLY);
_close(f);
#else
int f = open("file.txt", O_RDONLY);
close(f);
#endif
}
/* Command line behavior
C:\Temp>cl /EHsc /W4 /Zc:__STDC__ test__STDC__.c && test__STDC__
*/
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.
Em Opções adicionais, adicione
/Zc:__STDC__
. Escolha OK ou Aplicar para salvar as alterações.
Confira também
/Zc
(Conformidade)
/std
(Especificar a versão padrão da linguagem)