关于c内联函数不能有循环递归

时间:2021-02-10 13:55:23

内联函数是什么,有什么用,和宏有什么联系区别,自己百度  不好玩的一堆。

/*java课上没有书的还非常前排的人类瑟瑟发抖*/

我只说一点喔

 不是内联函数中不能有循环语句,而是当内联函数中出现了复杂的逻辑控制语句后,编译器会不再认为它是一个内联函数。
也就是说,当内联函数中实现过于复杂时,编译器会将它作为一个普通函数处理。
这是由内联函数的特殊性所决定的,由于内联是调用处展开的方式,所以编译器认为只有足够简单的函数才可以具有该特性,复杂函数编译器会放弃内联特性。载自百度知道https://zhidao.baidu.com/usercenter?uid=a5a44069236f25705e79bc05

钦此!

(希望大家写清楚一点,不然很容易给我们造成误解认为不能在已经声明了的内联函数里写递归for之类 ,久久就写得挺好嘛,编译器也没有报错,)

/*author:九九 */
#include<stdio.h>

inline int sub( int a,int b )
{
    for (;b-->0;--a);
        
    return a;
}

int main( void )
{
    printf("%d\n",sub(8,5));
    
    return 0;
}
溜了溜了,,都是无聊的东西,程序员们真是想尽办法。