1、精要概括: #define A(x) T_##x #define B(x) #@x #define C(x) #x 我们假设:x为1,则有: A(1) ---> T_1 B(1) ---> '1' C(1) ---> "1" 2 、示例: #include <stdio.h> #define A(x) T_##x #define B(x) #@x #define C(x) #x #define T1(n) "a"#n #define T2(n) printf("iNum"#n" = %d", iNum##n) int main() { int A(id) = 77; printf("%d/n", T_id); printf("%c/n", B(c)); printf("%s/n", C(testStr)); printf("%s/n", T1(bc)); int iNum2 = 68; T2(2); //等价于:printf("iNum2 = %d", iNum2); getchar(); return 0; } 3、使用(实现了一个计时器宏): #include <windows.h> #include <stdio.h> //-----------------计时器宏------------------------------ //#define DebugOutPut #define tS L_TIMER_RUN #define tE L_TIMER_END #ifdef DebugOutPut #define OUTPUT OutputDebugString #else #define OUTPUT printf #endif #define L_TIMER_RUN(id) / / DWORD dwStart##id = GetTickCount(); #define L_TIMER_END(id) / / char szMsg##id[256];/ sprintf(szMsg##id, "{%s} %6d ms/r/n", #id, (GetTickCount() - dwStart##id));/ OUTPUT(szMsg##id); //------------------------------------------------------- //Demo int main(void) { tS(one); Sleep(1000); tE(one); tS(two); Sleep(2000); tE(two); getchar(); return 0; }