例如,假设我有2个头文件。
啊
#include <stdio.h>
static __inline foo()
{
// do something
}
然后a.h
文件包含在b.h
:
h
#include "a.h"
void bar();
带有相应b.cpp
文件:
公元前
#include "b.h"
void bar()
{
foo();
}
main.c
#include "b.h"
void main()
{
bar();
}
foo()
要在被内联b.c
文件?foo()
(静态)将在可见main.c
因为它是通过包含文件b.h
的文件或者它仅仅是可见b.c
?(由于它们不在同一个翻译单元中,因此将猜测它是不可见的)。foo()
在b
和中都可见main
。预处理器完成其工作后,编译器将查看文件。
main.c
在预处理程序步骤之后:
<all the stuff from stdio.h>
static __inline foo()
{
// do something
}
void bar();
void main()
{
bar();
}
删除的一种方式foo()
,从main.c
是将纳入a.h
来自b.h
于b.c
:
修改后b.h
:
void bar();
修改后b.c
:
#include "a.h"
#include "b.h"
void bar()
{
foo();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句