C++:编写跨平台程序的关键,C/C++中的内置宏定义

得到的答案 都不好。为什么,因为他们都不知道原理。其实原理很简单,编译器 参数或Makefile添加了宏定义,你才可以这样去判断。

比如编译器设置了宏 is_windows,你才能去用。不设置没法用。

但是,我敢肯定各种编译器 内置一些宏,比如 MS VC的cl.exe ,LINUX的GNU gcc,在各个平台都会有不同的内置宏的。

 

所以 如果我搜索 "各个编译器 内置宏 操作系统" 少量的答案中 有一个 :


C++:编写跨平台程序的关键,C/C++中的内置宏定义
分两部分:

操作系统判定:

Windows:   WIN32

Linux:   linux

Solaris:   __sun

编译器判定:

VC:  _MSC_VER

GCC/G++:   __GNUC__

SunCC:   __SUNPRO_C和__SUNPRO_CC


猜你喜欢

转载自blog.csdn.net/kyopeng123/article/details/53959685