C/C++宏定义

1.TRACE宏                                                                                                                          
1 #define delete_log(fmt, args...) \
2 Log("FILE:%s FUNCTION:%s LINE:<%d>\n"fmt, __FILE__, __FUNCTION__, __LINE__, ##args)

2.                                                                                                                                      

 1 struct dlt_choice 
 2 {
 3     const char *name;
 4     const char *description;
 5     int dlt;
 6 };
 7 
 8 #define DLT_CHOICE(code, description) { #code, description, code }
 9 #define DLT_CHOICE_SENTINEL { NULL, NULL, 0 }
10 
11 DLT_CHOICE(DLT_NULL, "BSD loopback"),//经过gcc -E test.c编译后,实际上的内容为:
12 {"DLT_NULL""BSD loopback", DLT_NULL}
13 

可见,#code的#的用处是将紧跟其后的内容扩展成字符串

posted on 2008-01-16 15:55  kevin.Tian  阅读(387)  评论(0编辑  收藏  举报

导航