宏替换只作替换不做计算,不做表达式求解,不做类型检查….docVIP

  • 69
  • 0
  • 约2.57千字
  • 约 3页
  • 2019-08-05 发布于江苏
  • 举报

宏替换只作替换不做计算,不做表达式求解,不做类型检查….doc

宏替换只作替换,不做计算,不做表达式求解,不做类型检查… 可以用#undef命令终止宏定义的作用域。 宏定义可以嵌套,最多替换200+次(具体记不清了)。 防止文件重复包含 #ifndef XXX_H_ #define XXX_H_ … #endif 编译过程控制 #ifdef _DEBUG … #else … #endif 定义常量 #define PI 3.14 带参数的宏 #define max(a,b) ((a) (b) ? (a) : (b)) 包含多个语句的宏 #define msg(str) do \ { \ …;\ …;\ }while(0) #和##的用法 宏替换会把#后面的内容作为字符串进行替换,例子: #define PASTE(n) abc#n 替换之后相当于”abc””n” 比如PASTE(12) - “abc12” ##用于把两侧的参数合并成一个符号,例子: #define composite(a,b,c) a##b##c 则composite(12,12,11) - 121211 composite(“aa”,”bb”,”cc”) - “aabbcc” 注意:当宏参数是另一个宏的时候,会递归展开,但用#或##的(该)宏参数不会再展开。 a.宏定义中不存在#和## #define two 2 #defi

文档评论(0)

1亿VIP精品文档

相关文档