#:用于字符串化,#后面的参数被转成一个字符串
##:用于字符串的分割连接
举例:
首先定义一个字符串及其长度的结构体:
typedef struct AVal
{
char *av_val;
int av_len;
} AVal;
宏定义一个该类型的字符串结构:
#define AVC(str) {str,sizeof(str)-1}
#define SAVC(x) static const AVal av_##x = AVC(#x)
使用:
声明SAVC(test);
则av_test即为一个Aval类型的静态常量