C语言多文件编程

Python020

C语言多文件编程,第1张

多个c文件的作用在于将不同功能的代码分开来实现,这样便于代码重用、代码编译和代码管理。

一个程序中,只能有一个main函数,这是整个程序的起点和入口。如果其他人也实现了该函数,则必须要重新命名,然后在唯一的main函数中统一调用。

多个c文件的合并并没有顺序要求,任何一个都可以先编译或者后编译。

extern表示导出,可以用于函数和变量。用于函数的时候,表示这是一个外部函数,用于变量的时候,表示这是一个外部变量。

如果使用一个c文件,多个h文件,则会导致改动代码任何一个地方,都要重新编译所有的文件,效率上非常不划算。而使用多个c文件,当代码发生变更的时候,仅仅相关的c文件代码需要重新编译,其他代码则可以保持不变,不用参与编译。

函数中的局部变量无法在函数外部调用,只能通过参数传递的方式传递给第三方函数。因为局部变量是出于栈上面的,栈会随着函数调用完毕的时候被系统回收。

没用这么麻烦,你只需要3个文件:

file1.c file2.c file2.h

将file2.c和file1.c都include file2.h,file2.c中的所有结构体都在file2.h中定义,函数虽然在.c中定义,但声明也就是extern在file2.h中,这样file1.c就能使用file2.c里的函数和结构体了。

可以使用全局变量,例如:头文件声明:struct MyStruct{.......} 在源文件3声明定义变量:

Mystruct my_1 在原文件1,2的文件头声明,extern Mystruct my_1(表示该变量是在其它文件中声明定义的),那么这三个文件使用的都是同一个全局变量