得到的答案 都不好。为什么,因为他们都不知道原理。其实原理很简单,编译器 参数或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
本文详细介绍了在C/C++编程中如何利用编译器内置的宏定义进行跨平台开发。针对不同操作系统(如Windows、Linux、Solaris)及编译器(如MSVC、GNU gcc、SunCC)的内置宏进行了列举,帮助开发者更好地实现代码的兼容性和可移植性。
2735

被折叠的 条评论
为什么被折叠?



