其实正点原子有良好的模板工程。。。user 。lab文件 ,obj。
一脸蒙的是库函数的操作方式。。。。
为了便于管理,该项目文件夹内,我分了以下几个文件夹:"PROJ"存放工程文件,"APP"存放"main.c"、"aplication.c"文件,"BASEDRIVE"存放的"Uart.c"文件,"EXTIDRIVE"存放的是"Flash.c","DOC"存放的是"Readme"文件,对应".h"文件存放在对应文件夹。
包含头文件时可写绝对路径:譬如"#include XXX/EXTIDRIVE/'Flash.h'",但过于麻烦,也可将头文件所在的目录设置进编译软件,
a)IAR的设置方法:
在工程文件名右键,选择"Option"-->"C/C++complier"-->"Proprocessor"-->"Additonal Include directories"。
b)KEIL的设置方法:
“Project”-->”Option for Target XXX”-->”C/C++”-->”Include Paths”。
这样直接写相对路径:"#include 'Flash.h'",头文件也可被编译器找到。
前期铺垫这么多,现在开始进入正题:“多个.c文件相互包含.h文件该做如何处理”?
在每个”.c”文件内声明变量与函数,某些变量/函数如果会被其它”.c”文件调用,则在对应的”.h”文件extern 该变量/函数,若有文件要使用这些变量/函数,只需包含其头文件即可。宏定义可直接在头文件内定义。