1
#define TO_STRING(t) #t
#define MAP_TO_STRING(ot) {TO_STRING(ot), ot}
TO_STRING宏接受一个参数t,并使用#运算符将其转换为字符串。这意味着当你在代码中使用TO_STRING(abc)时,它将被替换为字符串"abc"。
MAP_TO_STRING宏接受一个参数ot,并使用TO_STRING宏将其转换为字符串。这个宏的目的是将一个值和它的字符串表示关联起来。例如,当你在代码中使用MAP_TO_STRING(123)时,它将被替换为{“123”, 123}。
这些宏可以在代码中用于创建字符串表示和关联值和字符串的映射。
2
define swapint(x, y) do{int tmp = x; x = y; y = tmp;}while(0)
这样在switch语句中和if语句中都可以运行.具体请看:
宏定义中常见的 do{ }while(0)