c++学习(七):宏定义函数与内联函数

本文探讨了C++中的宏定义函数和内联函数。宏定义函数提供了提高程序可读性和运行效率的优势,但存在代码膨胀、可读性下降和安全隐患。内联函数作为宏的替代方案,具备调试功能并能访问类的私有成员。文章通过实例展示了内联函数的使用,并指出在执行时间短的函数中使用内联函数更能节省调用时间。
摘要由CSDN通过智能技术生成

a.宏定义函数:

优点:
提高了程序的可读性,同时也方便进行修改;
提高程序的运行效率:
使用带参的宏定义既可完成函数调用的功能,又能避免函数的出栈与入栈操作,减少系统开销,提高运行效率;

缺点:
由于是直接嵌入的,所以代码可能相对多一点;
嵌套定义过多可能会影响程序的可读性,而且很容易出错;
对带参的宏而言,由于是直接替换,并不会检查参数是否合法,存在安全隐患。
不能debug。

//macro
#define  MYDELETE(ptr) \
    delete ptr;\
    ptr = NULL;

//macro
    int* mymacro1 = new int;
    if (mymacro1!=NULL)
    {
        MYDELETE(mymacro1);
    }


b.内联函数:

C++增加了内联函数(inline),实现起来比带参数的宏更方便,这样的宏在C++中已经很少使用了。

b.1优点:相比较宏有以下优点。

        1.使用宏,无法进行调试,内联函数可以。

        2.使用宏无法访问类的私有成员,内联函数可以。

b.2 inline的原理:

代码替代

b.3inline的使用:

让一个函数成为内联函数,隐式的为在类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值