多个.c文件和头文件

在实际的开发项目当中 ,我们通常需要自己编写自己的头文件。下面以实现add为例子来写一个多文件

头文件:
多个.c文件和头文件_第1张图片

结构体初始化函数:
多个.c文件和头文件_第2张图片
add业务函数:
多个.c文件和头文件_第3张图片

主业务函数:
多个.c文件和头文件_第4张图片

main函数:
多个.c文件和头文件_第5张图片

所有的.c和头文件都写好之后,gcc编译生成二进制可执行文件haha ./haha执行程序

这里写图片描述

gcc main.c func1.c func2.c func3.c -o haha

tips

1 双引号“”用于包含头文件的时候,只能在当前目录下被找到,如果当前目录下没有这个文件,就会去默认的固定路径中(c库函数等在/usr/include/这个路径下)找,找不到就报错!
2<>是系统内置好的环境变量,指引找到的固定路径
3 全局变量不要写在头文件里面,因为我的每一个.c文件都可以操作这个全局变量,有可能不小心改变了值

如果我将这个例子中的头文件head.c从当前目录移到其他路径下如图:
多个.c文件和头文件_第6张图片
此时就没办法找到我的头文件 直接出现报错!!

解决这个头文件找不到的办法有三个
(1)在写头文件时带上它的路径(绝对或者相对都可以)
这里写图片描述
(2)把自己写的头文件复制一份到默认的库文件路径下(/usr/include/)
但是这个方法不好!!!默认路径下已经有很多的库文件了!!
(3)通过-I参数来指定头文件的路径(绝对和相对都可以)

gcc main.c func1.c func2.c func3.c -o haha -I./temp

条件编译

防止头文件重复包含

#ifndef _HEAD_H_//如果没有这个头文件则执行下面的,有的话下面的都不会执行!!!
#define _HEAD_H_


#endif

你可能感兴趣的:(多个.c文件和头文件)