C++内联(inline)函数

        内联函数的格式:inline 返回值类型  函数名(参数)  如:inline void display(int r);

一、为什么要用内联函数
        在执行程序过程中如果要进行函数调用,系统系统要将程序当前的一些状态信息存到栈中,之后进行虚实结合,同时转到函数的代码处去执行函数体的语句,这些参数保存与传递的过程中需要时间和空间的开销,是的程序执行效率降低,特别是在程序频繁地进行函数调用以及函数发i吗段语句较少时,这个问题会变得更加严重。为解决这个问题,C++引入了内联函数机制。
二、内联函数原理
        编译器将编译后的全部内联函数的目标机器代码赋值到程序内所有的引用位置并把往返的数据也都融合进引用位置的计算当中,用来避免函数调用机制所带来的开销,从而提高程序的执行效率。简而言之,内联函数就是一种“以空间换时间”的措施。
        需要注意的是,若内联函数较长,且是被频繁调用时,程序将被加长很多。因此,通常只有较短的函数才定义为内联函数,对于较长的被频繁调用的函数最好作为一般函数处理。
三、内联函数的限制
(1)不能有递归;
(2)不能包含静态数据;
(3)不能包含循环;
(4)不能包含switch和goto语句;
(5)不能包含数组;
若一个内联函数定义不满足上述限制,则编译系统把它当作普通函数处理。


猜你喜欢

转载自blog.csdn.net/TYPYDEF/article/details/79662453