一,内联函数

1.内联函数的概念

  C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10。那么C++中是否有什么解决方案来替代宏代码片段呢?C++中推荐使用内联函数代替宏代码片段,C++中使用inline关键字声明内联函数。注意:内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。

2.内联函数示例

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

# include<iostream>using namespace std;/* 宏定义函数方式 */# define FUN1(a,b) ((a)<(b)?(a):(b))/* 内联定义函数方式 */inline int FUN2(int a,int b)
{    return a < b ? a : b;
}int main()
{    int a = 1;    int b = 3;    // 宏定义方式的时候是在预编译阶段直接替换,++a<b?++a:b,因此此时返回的c是3(执行了两次++)    // int c = FUN1(++a, b);    // 内联函数方式是在编译阶段将函数体直接插入到调用的地方,最终生成的代码是没有函数定义的
    int c = FUN2(++a, b);

    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);    return 0;
}

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

网友评论