上接C/C++要點全掌握(三)。
12、宏定義三要點
以下三點一般都沒被重視,至少我之前就不知道,但這三點是非常重要的,只有滿足這三個要求的宏才是無誤的,否則有可能出現與宏的原義相左的情況。這裡將其單獨作為一節,凸顯其重要性,在以後的編程中要嚴格按照這個形式來定義宏。
(1)表達式中參數變元都用括號括起來;
(2)將表達式根據運算優先將各個子表達式用括號括起來;
(3)將整個表達式用括號括起來。
如:
#define MAX(x,y) ( ( (x)>(y) )? (x):(y) ) //注意不要加分號
摘自 tht的專欄