C语言中inlcude xxc的用法

要弄明白这个问题需要对c语言的编译方式有所了解。

c语言的编译方式是分离式的,分为两步(假设只有一个生成目标):

1、将一个或多个源文件编译成可重定位的目标文件,其中每个文件是分别编译的。

2、将1步生成的可重定位目标文件链接成一个可执行目标文件或者共享目标文件。

假设foo1.c中用include指令包含了foo2.c,foo2.c中定义了函数function且没有用static修饰。

那么经过预处理,foo1.c中也将包含function的定义。

于是foo1.c生成的可重定位目标文件(假设为foo1.o)和foo2.c(假设为foo2.o)都有function这个符号,这样上面所说的第二部就会因为冲突而失败。

特殊情况要包含include .c 文件, 通常就不要包含.c源文件了,

精选文章

相关文章

粤ICP备17098710号 微点阅读