c/c++中编写跨平台的代码时,难免需要根据不同的操作系统、编译器等准备不同的代码。
首先,不同平台中编译器预定义宏的参考资料 点击这里
其次,我本人仅关注以下平台:linux32/64-gcc, win32/64-vc, win32/64-mingw,这里给一个我自用的侦测上述平台的头文件
/**
* @file -
* @author jingqi
* @date 2011-11-13
* @brief
* see http://sourceforge.net/p/predef/wiki/Home/
*
* @last-edit 2012-03-25 18:53:32 jingqi
*/
#ifndef ___HEADFILE___6689E00A_B262_4C15_A826_19665AF8EC32_
#define ___HEADFILE___6689E00A_B262_4C15_A826_19665AF8EC32_
/** 操作系统类型 */
#if defined(__WINDOWS__) || defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64) || \
defined(__WIN32__) || defined(__TOS_WIN__)
# define NUT_PLATFORM_OS_NAME "Windows"
# define NUT_PLATFORM_OS_WINDOWS
#elif defined(__linux__) || defined(linux) || defined(__linux) || defined(__LINUX