/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에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션에서 .를 추가합니다
/Zc:__STDC__
. 확인을 선택하거나 적용을 선택하여 변경 내용을 저장합니다.