Chinaunix首页 | 论坛 | 博客
  • 博客访问: 162207
  • 博文数量: 29
  • 博客积分: 1015
  • 博客等级: 上士
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-22 12:30
个人简介

喜读书,尤好史。

文章分类

全部博文(29)

文章存档

2012年(10)

2011年(19)

分类: LINUX

2011-12-20 17:06:55

宏仅仅是文本串替换,而且再稍微复杂的情况下有些行为是未定义的,所以会看到很多书中是不提倡用宏的
在函数方面, 首先 宏不会进行类型检查,边界检查等,这是用macro宏的不安全性。
其次,宏替换总会被执行, 而inline是一种建议操作,而不是强制性的,会不会展开取决于编译器, 如果编译器认为展开会影响整体性能(比如inline函数里代码太多,比较复杂等),则放弃inline,而是按普通函数调用
GCC does not inline any functions when not optimizing unless you
specify the `always_inline' attribute for the function, like this:
     /* Prototype.  */
     inline void foo (const char) __attribute__((always_inline));
阅读(1604) | 评论(0) | 转发(0) |
0

上一篇:syslog

下一篇:gdb显示内存命令

给主人留下些什么吧!~~