使用内联函数代替函数宏-*重构*改善既有代码的设计(带完整书签)

时间:2021-06-08 00:09:26
【文件属性】:
文件名称:使用内联函数代替函数宏-*重构*改善既有代码的设计(带完整书签)
文件大小:1.28MB
文件格式:PDF
更新时间:2021-06-08 00:09:26
C++ 编程规范 3.1 内联函数 规则3.1 内联函数(inline function)小于10行 说明:内联函数具有一般函数的特性,它与一般函数不同之处只在于函数调用的处理。一般函数进行 调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时, 是将调用表达式用内联函数体来替换。 内联函数只适合于只有1~10行的小函数。对一个含有许多语句的大函数,函数调用和返回的开销相对 来说微不足道,也没有必要用内联函数实现,一般的编译器会放弃内联方式,而采用普通的方式调用 函数。 如果内联函数包含复杂的控制结构,如循环、分支(switch)、try-catch等语句,一般编译器将该函数 视同普通函数。虚函数、递归函数不能被用来做内联函数。 规则3.2 使用内联函数代替函数宏 说明:C++中也支持宏的功能,但是宏有其自身固有的缺陷(例如无法对参数进行类型检查),因此,能 使用内联函数的地方,一定不使用宏。 示例: //较好的例子: template inline TYPE_T& max(TYPE_T& x, TYPE_T& y) { return (x>y)?x:y;

网友评论