> 백엔드 개발 > C++ > 내 컴파일러에 구현된 C 표준 버전을 어떻게 확인할 수 있나요?

내 컴파일러에 구현된 C 표준 버전을 어떻게 확인할 수 있나요?

DDD
풀어 주다: 2024-12-13 15:59:11
원래의
222명이 탐색했습니다.

How Can I Determine the Implemented C   Standard Version of My Compiler?

구현된 C 표준 버전 결정

컴파일러의 C 표준 구현을 결정하는 것은 호환성을 보장하고 최신 언어 기능을 활용하는 데 중요할 수 있습니다. . C 98 및 C 03을 포함하여 여러 C 표준이 출시되었습니다.

표준 버전을 식별하는 한 가지 방법은 __cplusplus 매크로를 확인하는 것입니다.

__cplusplus 매크로

Bjarne Stroustrup의 C 0x FAQ에 따르면 __cplusplus 매크로는 다음과 같습니다. C 11 이상에서는 199711L보다 큰 값으로 설정하십시오. 그러나 일부 컴파일러에서는 이 매크로를 올바르게 설정하지 않을 수 있습니다.

GCC

gcc에는 언어 버전에 관계없이 __cplusplus를 1로 설정한 이력이 있습니다. 이 문제는 gcc 4.7.0에서 해결되었습니다.

MSVC

MSVC도 __cplusplus를 199711L로 잘못 정의합니다. 올바른 값을 얻으려면 /Zc:__cplusplus를 컴파일러 플래그에 추가하거나 MSVC 관련 매크로 _MSVC_LANG을 확인하세요.

예상되는 __cplusplus 값

  • C pre -C 98: 1
  • C 98: 199711L
  • C 98 TR1: __cplusplus를 사용하여 확인할 수 없습니다
  • C 11: 201103L
  • C 14: 201402L
  • C 17: 201703L
  • C 20: 202002L
  • C 23: 202302L

다른 방법

__cplusplus가 충분하지 않거나 사용할 수 없는 경우 , 다른 접근법 include:

  • 컴파일러 관련 매크로: 컴파일러 정의 매크로를 검사하면 구현된 표준 버전이 드러날 수 있습니다.
  • Boost.Config: 이 라이브러리는 특정 C 기능을 확인하기 위한 매크로를 제공합니다.
  • 기능 평가: 특정 기능을 활용하는 코드를 실행하면 해당 기능의 가용성과 결과적으로 구현된 표준 버전이 결정될 수 있습니다.

모든 컴파일러가 C 표준의 모든 기능을 완전히 구현하는 것은 아니라는 점에 유의하는 것이 중요합니다. 안정적인 코드 실행을 보장하려면 컴파일러 호환성 및 기능 지원에 대한 세심한 검토가 필요합니다.

위 내용은 내 컴파일러에 구현된 C 표준 버전을 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿