内联函数具有一般函数的特性,它与一般函数所不同之处只在于函数调用的处理。一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换。
因此在编译时,如果在调用时未出现函数的定义,编译器就无法用内联函数体来替换调用函数的表达式。而普通函数在编译时不需要进行替换,因此也就不需要在调用之前定义。
因此,大家也就容易理解为什么递归函数不能内联了,因为递归函数若在调用处简单的用函数体来替换,无法实现其功能。
内联函数的定义必须出现在第一次调用之前原因
最新推荐文章于 2024-02-25 13:29:15 发布