大连市建设学校网站,装修网站建设案例,wordpress自定义排序,wordpress777内联函数 内联函数是一种特殊类型的函数#xff0c;内联函数在定义或声明时前面加上“inline”关键字。比如#xff1a; inline int max(int a,int b) { return (ab)?a:b; } 内联#xff08;inline#xff09;是内联扩展#xff08;inline expansion#xff09;的简…内联函数 内联函数是一种特殊类型的函数内联函数在定义或声明时前面加上“inline”关键字。比如 inline int max(int a,int b) { return (ab)?a:b; } 内联inline是内联扩展inline expansion的简称。 C编译器处理内联函数比较特殊在遇到调用内联函数的地方会用函数体中的代码来替换函数的调用。比如下面的函数调用语句
Int maximummax(val1,val2);
在编译时会用函数max()的函数体展开
Int maximum((val1val2)?val1:val2);
也就是说程序执行时并没有真正调用函数max(),而是将内联函数的函数体中的语句直接在函数调用的地方展开了。 内联函数的作用 引用内联函数的主要目的是即可以保证程序的可读性又能提高程序的运行效率。函数的引入使得程序的结构比较清晰可读性好比如语句 Int maximum max(val1,val2); 就比下面的语句可读性好容易理解 Int maximum ((val1val2)?val1:val2); 而且程序中可能很多地方都需要用到求两个数的最大值得操作如果每次都写 val1val2val1:val2 显得非常麻烦而用max(val1,val2)就显得简单、清楚得多。 但是如果将求两个数的最大值这样逻辑非常简单的操作设计为一个一般的函数系统执行函数调用需要进行栈空间的分配、状态入栈、参数传递等操作函数的返回需要传递返回值、从栈中弹出信息、释放栈空间等操作效率会比不使用函数低的多。想max()函数这样功能比较简单的函数让系统为函数调用做那么多操作不值得因此C设计了内联函数内联函数即可以获得函数的好处又能提高程序运行效率。 内联函数的使用限制 并不是所有的函数都能够设计为内联函数。C对内联函数有很多限制 1在内联函数中不能定义任何静态变量 2内联函数中不能有复杂的流程控制语句如循环、switch和goto语句 3内联函数不能是递归的 4内联函数中不能说明数组。 如果自己定义的函数比较复杂违反了上面的定义系统将忽略inline关键字而视为一般的函数来处理。 所以内联函数一般是比较小的、经常被调用的、大多可在几行写完的函数。如果函数比较复杂函数调用和返回的开销相对来说就微不足道没有必要用内联函数实现。