본문 바로가기
Language & Framework & GIT/C++

[C++]What is _MSC_VER?

by veganwithbacon 2023. 10. 17.
반응형

엠에스시벌?이 뭘까 생각하다가 무슨 버전인 듯한데, 역시 모를 땐 구글링..

Chatgpt 얘는 입만 열면 그짓말이 자동으로 나와 신뢰도가 하락했다

 

_MSC_VER(엠에스시벌)

: 컴파일러 버전 번호의 주 번호 요소와 부 번호 요소를 인코딩하는 정수 리터럴로 정의 된다.

메이저 번호는 마침표로 구분된 버전 번호의 첫 번째 요소이고 마이너 번호는 두 번째 요소이다. 

예를 들어, Microsoft C/C++ 컴파일러의 버전 번호가 17.00.51106.1인 경우 _MSC_VER매크로는 1700이다.

컴파일러의 버전 번호를 보려면 명령줄에 cl/?를 입력하면 된다.

 

 

특정 버전의 Visual Studio 또는 그 이후 버전에서 컴파일러 릴리스 또는 업데이트를 테스트하려면 >=연산자를 사용한다.

_MSC_VER알려진 버전과 비교하기 위해 조건부 지시문에서 이를 사용할 수 있다 . 비교할 상호 배타적인 버전이 여러 개 있는 경우 버전 번호의 내림차순으로 비교 순서를 지정하자. 예를 들어 이 코드는 Visual Studio 2017 이상에서 릴리스된 컴파일러를 확인한다. 다음으로 Visual Studio 2015 이후에 릴리스된 컴파일러를 확인고, Visual Studio 2015 이전에 릴리스된 모든 컴파일러를 확인한다.

#if _MSC_VER >= 1910
// . . .
#elif _MSC_VER >= 1900
// . . .
#else
// . . .
#endif

주 번호와 부 번호를 공유하는 컴파일러 버전을 테스트하려면 _MSC_FULL_VER 비교를 위해 주 번호, 부번호, 빌드 번호를 사용해야한다.

자세한 내용은 여기를 https://devblogs.microsoft.com/cppblog/visual-c-compiler-version/ 참고하자.

 


_MSC_VER는 윈도우 기반 컴파일러를 사용할 때 항상 정의된다.

모든 버전에서.

                                                                                  -  공식 문서 -


 

반응형

댓글