博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C/CPP-宏

Posted on 2023-03-13 06:04  乔55  阅读(4)  评论(0编辑  收藏  举报

宏定义

#define N 10
  • 宏:就是简的文件替换

宏函数

#define fun(x) (1+(x)+(x)*(x))
#define fun() do { printf("hello "); printf("world\n"); } while(0)
// 宏函数有时不仅仅是一个表达式,还可以是多条语句
// fun与左括号不应该有空格
// 整个函数体应该用括号括起来
// 函数参数x应该用括号括起来
// 警惕宏函数导致的多次作用
// 宏函数有点麻烦,但是效率高,普通函数调用有额外开销

宏与typedef

  • 宏定义在预处理阶段进行,编译器无法识别宏定义,无法给出错误提示
  • 编译器能识别typedef定义的别名,若发生错误,可给出提示