다음을 통해 공유


/Zc:__STDC__ (매크로 사용 __STDC__ )

/Zc:__STDC__ 컴파일러 옵션은 기본 제공 __STDC__ 전처리기 매크로를 C 코드에서 1로 정의합니다.

구문

/Zc:__STDC__

설명

/Zc:__STDC__ 컴파일러 옵션은 전처리기 매크로에 대한 __STDC__ 표준 C 준수 동작을 구현하여 C11 및 C17 코드를 컴파일할 때 1로 설정합니다.

Visual /Zc:__STDC__ Studio 2022 버전 17.2의 새로운 옵션입니다. 이 옵션은 기본적으로 해제되어 있지만 지정되거나 /std:c17 지정된 경우 /std:c11 명시적으로 사용하도록 설정할 수 있습니다. 음수 버전의 옵션은 없습니다.

이 옵션은 소스 호환성이 손상되는 변경입니다. __STDC__1일 때 POSIX 함수를 노출하지 않는 UCRT의 동작으로 인해, 안정적인 언어 버전에 호환성이 손상되는 변경을 도입하지 않고는 기본적으로 C에 대해 이 매크로를 정의할 수 없습니다.

예시

// 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__

*/

Visual Studio에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션에서 .를 추가합니다/Zc:__STDC__. 확인을 선택하거나 적용을 선택하여 변경 내용을 저장합니다.

참고 항목

/Zc(규칙)
/std(언어 표준 버전 지정)