当前位置:编程学习 > C/C++ >>

C++基础之 "内联函数"

想看下内联函数跟普通函数外观有什么区别
[cpp] 
//内联函数定义 
inline int sum(int a,int b){ 
    return a + b; 

//普通函数定义 
int sum1(int a,int b){ 
    return a + b; 

多了inline关键词。
想起之前写C语言,把一些重复做的事情封装成一个函数,真是很大的进步。但是他们说调用函数比直接代码要慢些。内联函数有什么好处呢?避免了函数调用的开销。也就是说如果我写下面的代码:
printf("a+b=%d\n",sum(a,b));
它会把代码展开变成
printf("a+b=%f\n",(a + b));
有点像宏。一般说来,内联机制适用于优化小的,只有几行的而且经常被调用的函数。还有递归函数大多也不支持。
内联函数的定义对编译器必须是可见的,以便编译器能够在调用点内联展开该函数的代码,所以仅有函数原型是不够的。
完整代码:
[cpp] 
#include <stdio.h> 
//内联函数定义 
inline int sum(int a,int b){ 
    return a + b; 

//普通函数定义 
int sum1(int a,int b){ 
    return a + b; 

 
int main(int argc, char* argv[]) 

    int a = 1,b = 2; 
    //下面的调用等于 printf("a+b=%f\n",(a + b)); 
    printf("a+b=%d\n",sum(a,b)); 
    //普通函数调用 
    printf("a+b=%d\n",sum1(a,b)); 
 
    return 0; 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,