make是一个命令 makefile是一个文件[makefile也对]
之前的学习都没有维护项目结构 当有多个.c文件 先编译哪个后编译哪个 自己没管过 make/Makefile: 自动化的构建项目
编写Makefile的目的:能够自动化的构建项目 可以把我们的源代码编译 自动生成可执行程序
编写Makefile:依赖关系(小灰灰是灰太郎的儿子 有父子关系)依赖方法(小灰灰上大学月底给灰太狼要生活费)





利用编写好的Makefile 可以通过make/make clean进行生成/删除可执行程序

这是一个Makefile文件,用于编译名为hello的C程序。
可以使用命令make执行该Makefile文件来进行编译和生成可执行文件。如果需要删除可执行文件,可以使用命令make clean。
执行: Makefile自顶向下扫描文本 只会执行第一对目标文件 想要执行特定文件需要在make后+文件名
.PHONY修饰的目标称为伪目标: 总是被执行的(总是根据依赖关系去执行依赖方法) 理解: 多次执行make hello 会显示: 该文件已为最新文件 而多次执行make clean则没有显示

ACM时间
Access: 最近一次访问 因为有些文件经常被访问 所以这个时间经常需要被修改 而频繁修改存在于磁盘上的文件需要耗费时间 所以优化后: 当达到一定访问次数才会修改access
Modify: 最近一次修改文件内容的时间 当文件内容增加/减少引起文件大小变化 – 文件的属性信息也会随之改变
Change: 最近一次修改文件属性的时间
extern是什么
extern是C语言中的一个关键字,用于在源文件中声明一个在另一个源文件中定义的变量或函数。它的作用是告诉编译器在其他地方已经定义了这个变量或函数,避免重复定义。
1.在一个源文件中声明一个在另一个源文件中定义的全局变量或函数,以便在当前源文件中使用它们。
2.在一个头文件中声明一个在另一个源文件中定义的全局变量或函数,以便在多个源文件中使用它们。
例子:
// file1.c
int count; // 定义全局变量count
// file2.c
extern int count; // 声明全局变量count
file1.c定义了一个全局变量count,file2.c使用extern声明了这个全局变量,以便在file2.c中使用它。
extern关键字只是一个声明,它并不会分配内存空间。变量的实际定义和内存分配必须在某个源文件中进行。另外,如果一个变量在多个源文件中都使用了extern声明,那么它只能在其中一个源文件中进行定义。






