1809228982 发表于 2018-12-22 14:35:06

关于内联函数的问题

这样编译和运行都是OK的,

#include <stdio.h>

int square(int x);
inline int square(int x)
{
    return x * x;
}

int main()
{
    int i = 1;
    while(i <= 100)
    {
      printf("%2d的平方是%2d\n",i-1,square(i++));
    }
   
    return 0;
}


而这样#include <stdio.h>

//int square(int x);
inline int square(int x)
{
    return x * x;
}

int main()
{
    int i = 1;
    while(i <= 100)
    {
      printf("%2d的平方是%2d\n",i-1,square(i++));
    }
   
    return 0;
}

和这样#include <stdio.h>

inline int square(int x);
inline int square(int x)
{
    return x * x;
}

int main()
{
    int i = 1;
    while(i <= 100)
    {
      printf("%2d的平方是%2d\n",i-1,square(i++));
    }
   
    return 0;
}


后两个都不可以编译成功,这是为什么呢??
用的codeblocks      
我网上查到说是要连接 -O 一起编译的??如果是这样,那么codeblocks要怎么弄呢??
求解答

ba21 发表于 2018-12-22 19:34:07

编译器不同效果不同,别纠结

参考
https://blog.csdn.net/cloudblaze/article/details/49800507

1809228982 发表于 2018-12-24 08:06:13

ba21 发表于 2018-12-22 19:34
编译器不同效果不同,别纠结

参考


好的,谢谢
页: [1]
查看完整版本: 关于内联函数的问题