關(guān)于宏定義
我想通過__LINE__表示不同的行號(hào)來定義不同的系統(tǒng)時(shí)間變量用以不同地方的打印時(shí)間,如下:
C/C++code
#defineLINE__ __LINE__ #define LINE(sys) sys##LINE__ SYSTEMTIME LINE(sys);GetLocalTime(&LINE(sys)); printf( "M/d/d d:d:d.d星期\n",LINE(sys).wYear,LINE(sys).wMonth,LINE(sys).wDay,LINE(sys).wHour,LINE(sys).wMinute,LINE(sys).wSecond,LINE(sys).wMilliseconds,LINE(sys).wDayOfWeek);#endif
編譯發(fā)現(xiàn)__LINE__并不會(huì)被先替換成行號(hào),而且多出定義會(huì)出現(xiàn)重復(fù)定義的錯(cuò)誤,直接用#define LINE(sys)sys##__LINE__也會(huì)出錯(cuò),更直接的在定義的時(shí)候:SYSTEMTIMEsys##__LINE__;來定義,錯(cuò)誤更離譜。這是為什么呢?