设为首页 加入收藏

TOP

I.1.2 使用inline而不是# define来定义小型函数
2013-10-07 15:49:41 来源: 作者: 【 】 浏览:86
Tags:I.1.2 使用 inline 不是 define 定义 小型 函数

I.1.2  使用inline而不是# define来定义小型函数

在创建类似于内联函数的东西时,传统的C语言方式是使用一个#define宏定义:

 
这将导致预处理器进行文本置换,将X替换为Cube( )的参数:
 
由于预处理器使用文本置换,而不是真正地传递参数,因此使用这种宏可能导致意外的、错误的结果。要避免这种错误,可以在宏中使用大量的圆括号来确保正确的运算顺序:
 

但即使这样做,也无法处理使用诸如Z++等值的情况。

C++(www.cppentry.com)方法是使用关键字inline来标识内联函数,这种方法更可靠,因为它采用的是真正的参数传递。另外,C++(www.cppentry.com)内联函数可以是常规函数,也可以是类方法:

 

#define宏的一个优点是,它是无类型的,因此将其用于任何类型,运算都是有意义的。在C++(www.cppentry.com)中,可以创建内联模板来使函数独立于类型,同时传递参数。

总之,请使用C++(www.cppentry.com)内联技术,而不是C语言中的#define宏。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇I.1 使用一些预处理器编译指令的.. 下一篇G.4 set和map的其他操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)