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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 12:55:03
inline放声明 还是定义 还是都放

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

inline放声明 还是定义 还是都放
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 函数内联到调用处!