inline内联函数

C++中的const常量可以替代宏常数定义,如:

const int A = 3; è #define A 3

C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!)

 

C++中推荐使用内联函数替代宏代码片段

 

C++中使用inline关键字声明内联函数

 

 

内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。

inline内联函数

inline内联函数

 

带参数的宏和函数调用

 

#include <iostream>
using namespace std;

//带参数的宏
#define MYFUNC(a,b) ((a)<(b)?(a):(b))

inline int myfunc(int a, int b)
{
    return a < b ? a : b;
}

int main(void)
{
    int a = 1;
    int b = 3;
    
    //一般情况不要使用++,--做函数参数
    int c = myfunc(++a,b); //a=2,b=3,c=2
    //int c = MYFUNC(++a,b);  //a=3,b=3,c=3
                        //宏替换并展开 ((++a)<(b)?(++a):(b))
    
    printf("a=%dn",a);
    printf("b=%dn",b);
    printf("c=%dn",c);
    
    cout<<"hello..."<<endl;
    
    return 0;    
}

 

原文链接: https://www.cnblogs.com/Liu-Jing/p/9693013.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    inline内联函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/281708

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午5:54
下一篇 2023年2月15日 上午5:54

相关推荐