/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

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

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

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