/Zc:__STDC__
(Habilitar __STDC__
macro)
La /Zc:__STDC__
opción del compilador define la macro de preprocesador integrada __STDC__
como 1 en código C.
Sintaxis
/Zc:__STDC__
Comentarios
La /Zc:__STDC__
opción del compilador implementa el comportamiento de conformidad de C estándar para la macro del __STDC__
preprocesador, estableciendolo en 1 al compilar código C11 y C17.
La /Zc:__STDC__
opción es nueva en Visual Studio 2022, versión 17.2. Esta opción está desactivada de forma predeterminada, pero se puede habilitar explícitamente cuando /std:c11
se especifica o /std:c17
. No hay ninguna versión negativa de la opción.
Esta opción es un cambio importante de origen. Debido al comportamiento de UCRT, que no expone funciones POSIX cuando __STDC__
es 1
, no es posible definir esta macro para C de forma predeterminada sin introducir cambios importantes en las versiones de lenguaje estable.
Ejemplo
// 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 establecer esta opción del compilador en Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
En Opciones adicionales, agregue
/Zc:__STDC__
. Haga clic en Aceptar o en Aplicar para guardar los cambios.
Consulte también
/Zc
(Conformidad)
/std
(Especificar la versión estándar del lenguaje)