[C/C++] 컴파일러 식별용 매크로
가끔 이런저런 요인으로 인해서 특정 컴파일러에 종속적인 행동을 해야 할 때가 있다.
그런데 그렇다고 막 그런 코드를 때려박으면 이식성에 문제가 생긴다.
이럴 때 쓸만한 것이 바로 컴파일러별로 정의되는 식별용 매크로상수다.
아래 코드들은 c/c++ 컴파일러 3대장인 clang/gcc/msvc을 식별해서 출력해준다.


gcc를 썼다고 한다.
근데 저 3대장 말고도 마이너한 컴파일러도 엄청 많은데, 원한다면 여길 참조하면 된다.
https://sourceforge.net/p/predef/wiki/Compilers/
아 그리고 c++의 표준 버전 체크용 매크로로는 __cplusplus가 있다. 이건 표준에 명시돼있는건데, 표준 발표 당시의 연-월을 정수값으로 갖고있다.
c++11은 201103이고
c++14는 201402이고... 그렇다.
C에는 STDC_VERSION 가 있다.