/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

  1. 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.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. 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)