数据结构c语言复习03

17 阅读1分钟

模块化编程和多文件

模块化设计和背后的原理

.c可执行文件; 每个.c 都独立编译成.o,然后多个.o链接成一个可执行文件; .o里面有一个装配清单,装配空间根据这份清单来链接成一个可执行文件

别人编写了个启动的程序,会自动找一个main函数并且去调用它;

屏幕截图 2025-05-25 130558.png

image.png

image.png gcc -c -o a01.o a01.c;//单文件目标的编译;

gcc -o build a01.o b01.o;//多文件目标的链接;

我们可以有一个省事的方式就是gcc -o build a01.c b01.c; 这样编译器会发现是.c结尾,那么他会自动编译这两个文件为.o;

头文件

多文件编程中,c语言只管这个函数的名字,只要有这个函数的名字,那么这个函数就可以执行;所以我们需要一个函数的声明:extern void abc();来检查函数使用是否符合规范;为了让b同学来写这个函数的声明我们引入了:XXX.h;来做头文件;

头文件在编译的作用就是在一个文件编译时,把这个头文件打开,依附于.c文件进行执行;

头文件在整个模块化编程的作用是:对外提供一些。。。让编译器晓得哪里出错了;

防止多次使用一个头文件

#ifndef TEXT_H
#define TEXT_H

#endif //TEXT_H

模块化如何声明接口

两个可执行文件定义了同名的函数,我们应该用static来分辨哪一个是对外的,哪一个是对内的;

image.png

Window中文问题和cmake多文件编程;