“##”把兩個(gè)獨(dú)立的字符串連接成一個(gè)字符串:
#include <stdio.h>
#define SORT(type) sort_##type
void sort_int(int **i);
void sort_long(long **l);
void sort_float(float **f);
void sort_char(char **c);
void main(void);
void main(void)
{
int **ip;
long **lp;
float **fp;
char **cp;
…
SORT(int)(ip);
SORT(long)(lp);
SORT(float)(fp);
SORT(char)(cp);
…
}
程序?qū)λ姆N數(shù)據(jù)類型排序。SORT(int)(ip);經(jīng)編譯預(yù)處理轉(zhuǎn)換為sort_int(ip);這個(gè)宏對(duì)類型不敏感。如果在運(yùn)行時(shí)才能確定調(diào)用哪個(gè)函數(shù),可用此法。