Chinaunix

标题: 在讲到inline与define的区别时。。。 [打印本页]

作者: xdshting    时间: 2010-09-09 16:03
标题: 在讲到inline与define的区别时。。。
很多书上都说“define只是进行简单的替换”,使用inline可以进行参数的有效性检查

define不是在预处理阶段进行吗,在编译阶段才会进行参数的有效性检查啊,为什么会有上面这种说法
作者: insnowind    时间: 2010-09-09 16:09
我觉得你说的不矛盾啊
作者: zhangsuozhu    时间: 2010-09-09 16:22
gcc -E xxx.c
作者: zhaohongjian000    时间: 2010-09-09 17:01
理解不能
作者: xdshting    时间: 2010-09-09 17:08
我觉得你说的不矛盾啊
insnowind 发表于 2010-09-09 16:09



    我的意思是说,inline所谓的类型检查,之类的,define也都可以做到啊
这怎么能说是他们的区别呢
作者: zhaohongjian000    时间: 2010-09-09 17:10
到了编译阶段已经被替换掉了,不是函数了,还咋检查参数什么的。
作者: xdshting    时间: 2010-09-09 17:29
到了编译阶段已经被替换掉了,不是函数了,还咋检查参数什么的。
zhaohongjian000 发表于 2010-09-09 17:10



    恩,对,,谢谢,是替换之后就不是函数了
作者: chinesedragon    时间: 2010-09-09 17:40

作者: JohnBull    时间: 2010-09-09 17:54
你所说的“参数合法性检查”应该指的是运行时检查。
作者: zzyong08    时间: 2010-09-09 21:32
回复 1# xdshting


    define 是在预处理阶段做的,inline是函数,是在编译阶段做的,所以可以做类型,参数等检查。
作者: pengjianbokobe    时间: 2010-09-10 09:17
参数的有效性检查
何意?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2