__IAR_SYSTEM_ICC__ // IAR for avr 的预定义宏
_AVR // ICC for avr 的预定义宏
__CC_ARM // KeilMDK 的预定义宏
__ICCARM__ // IAR for arm 的预定义宏
__GNUC__ // GNU 编译器的预定义宏
__TASKING__ // TASKING for arm的预定义宏
关于Keil的预定义宏详见
_AVR // ICC for avr 的预定义宏
__CC_ARM // KeilMDK 的预定义宏
__ICCARM__ // IAR for arm 的预定义宏
__GNUC__ // GNU 编译器的预定义宏
__TASKING__ // TASKING for arm的预定义宏
关于Keil的预定义宏详见
单片机编译器各个厂家用的地方不太一致,为了更方便的移植,通过预定义宏自动判断软件进行条件编译是很省事的。可移植性好。