inline放声明 还是定义 还是都放

问题描述:

inline放声明 还是定义 还是都放
1个回答 分类:综合 2014-12-06

问题解答:

我来补答
inline 的函数必须和函数定义一起用才起作用,而且调用方必须能够看到这个函数的定义,如:
// a.h
inline void foo(void);
// a.c
inline void foo(void)
{
}
// b.c
#include "a.h"
void bar(void)
{
foo();
}
这种用法 inline 是不起任何作用的,只有这样:
// a.h
inline void foo(void)
{
}
// b.c
#include "a.h"
void bar(void)
{
foo();
}
这样才能真正的内联; 内联是在编译期间处理的,第一种情况,如果编译器编译 b.c 的时候,只看到 foo 的声明,而看不到其定义,编译器就没办法把 foo 函数内联到调用处!
 
 
展开全文阅读
剩余:2000