带参宏有时候可以代替函数作用:优点直接替代,省去函数调用过程的开销;但缺点也是很明显:容易出错,系统不做检查非常容易出错。

改进方案:内联函数:既有带参宏的直接替代(拷贝)的优点,又有系统检查的优点。

使用要求:代码小于10行,不能有分支和循环结构,和递归调用,这样才能保证拷贝的开销小于函数调用(系统堆栈)开销。调用和声明一致。

宏的模块调试和跨文件问题:

我们在调试不同驱动模块的时候,经常要进行模块级的局部调试,这时候一般通过宏定义和条件编译进行调试。但如果定义的开关宏在main.c中,而XXX.C中也用到该宏进行条件编译就不行了(不能识别处理),所以一般讲开关宏定义在xxx.h中,xxx.c和main.c中都包含xxx.h就不会出现这个问题。

最新文章

  1. 理解CSS外边距margin
  2. C 语言学习 第六次作业总结
  3. C#遍历DataSet中数据的几种方法总结
  4. shell: bad interpreter: No such file or directory
  5. python 代码片段24
  6. JS运动基础(四) 碰撞运动
  7. C++学习41 exception类
  8. oracle中字符串的大小比较,字符串与数字的比较和运算
  9. linux scp ssh命令不用输入密码
  10. nide.js(二)文件I/O
  11. SpringBoot之彩色输出
  12. Tomcat 日志文件分割
  13. js传递数组
  14. Oracle同一个用户下启动多个数据库实例
  15. lame定理求欧几里得算法的求余和赋值次数
  16. LG5901 【模板】欧拉定理
  17. java中的块
  18. EJB JBOSS的安装
  19. int to string
  20. 支付宝Android接口4.0以上报错Failure calling remote service

热门文章

  1. Mac使用小结
  2. 浏览器上的Qt Quick
  3. Vijos 1921 严厉的班长 【状态压缩动态规划】
  4. ajax异步加载问题
  5. Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法
  6. 使用gcc找出头文件的路径
  7. BZOJ_4276_[ONTAK2015]Bajtman i Okrągły Robin_线段树优化建图+最大费用最大流
  8. P2946 [USACO09MAR]牛飞盘队Cow Frisbee Team
  9. Balancing Act(树的重心)
  10. 开启sqlplus中执行计划