/Za, /Ze (desabilitar extensões de linguagem)
A opção do compilador /Za desabilita e emite erros para extensões da Microsoft do C que não são compatíveis com ANSI C89/ISO C90. A opção preterida do compilador /Ze habilita as extensões da Microsoft. As extensões da Microsoft são ativadas por padrão.
Sintaxe
/Za
/Zé
Comentários
Observação
O uso de /Za quando o código é compilado como C++ não é recomendado. A opção /Ze está preterida porque seu comportamento está ativado por padrão. Para obter uma lista de opções do compilador preteridas, confira Opções do compilador preteridas e removidas.
O compilador do Microsoft C/C++ dá suporte à compilação do código C de duas maneiras:
O compilador usa o modo de compilação do C por padrão quando um arquivo de origem tem uma extensão .c ou quando a opção /Tc ou /TC é especificada. O compilador do C é um compilador C89/C90 que, por padrão, habilita as extensões da Microsoft para a linguagem C. Para obter mais informações sobre extensões específicas, confira Extensões da Microsoft para C e C++. Quando a compilação do C e a opção /Za são especificadas, o compilador do C se conforma estritamente com o padrão C89/C90. O compilador trata as palavras-chave estendidas da Microsoft como identificadores simples, desabilita as outras extensões da Microsoft e define automaticamente a macro predefinida __STDC__ para programas do C.
O compilador pode compilar código de C no modo de compilação C++. Esse comportamento é o padrão para arquivos de origem que não têm uma extensão .c e quando a opção /Tp ou /TP é especificada. No modo de compilação C++, o compilador dá suporte a essas partes dos padrões ISO C99 e C11 que foram incorporados ao padrão do C++. Quase todo o código em C também é um código C++ válido. Um pequeno número de palavras-chave do C e constructos de código não são código válido do C++ ou são interpretados de forma diferente no C++. O compilador se comporta de acordo com o padrão do C++ nesses casos. No modo de compilação do C++, a opção /Za pode causar um comportamento inesperado e não é recomendada.
Outras opções do compilador podem afetar a forma como o compilador garante a conformidade com os padrões. Para saber maneiras de especificar configurações de comportamento padrão do C e C++ específicas, veja a opção do compilador /Zc. Para obter configurações de conformidade padrão do C++ adicionais, confira as opções do compilador /permissive- e /std.
Para obter mais informações sobre problemas de conformidade com o Visual C++, confira Comportamento fora do padrão.
Para definir esta opção do compilador no ambiente de desenvolvimento do 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 da Configuração>C/C++>Linguagem.
Modifique a propriedade Desabilitar Extensões de Linguagem.
Para definir essa opção do compilador via programação
Consulte DisableLanguageExtensions.
Confira também
Opções do Compilador
/Zc (conformidade)
/permissive- (conformidade com padrões)
/std (especificar versão de idioma padrão)