微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于头文件写法的补充

关于头文件写法的补充

时间:10-02 整理:3721RD 点击:
前些日子,发表了一篇关于keil--c的模块化编程和头文件的写法的帖子。如下
http://bbs.elecfans.com/jishu_328721_1_1.html
    中间好久没有来发烧友了,今天来看时突然想起关于头文件的写法还有一两点需要注意的(自己写的时候遇到过的小问题),特发此贴,与大家共享下经验。才疏学浅,如有纰漏还望各位不吝赐教。
  大家用keil时,一旦需要编写较大的程序,就不方便在同一个文件中编写,所以当工程量不是很大时(反正目前为止除非是公司什么的做项目,如果单说比赛应该不会太大),模块化编程很有利于增强程序的可读性,但是要注意:
  一般在source group中添加一个包含main的文件就足够了,如果需要同时编辑其他文件,用工具栏的打开图标打开即可,因为一旦添加在sourc group中,keil是会默认按文件从上到下的顺序读取和编译的。如果你书写的.c的文件和.h的头文件都加入了,并且.c中的函数是在.h中声明的,.h是加在main文件的开头的话,这样一来,一旦你的main文件添加在了其他用来声明和定义函数的文件上面的位置的话,编译时就会莫名其妙的报错,原因就是因为在编译时,还没有找到这些函数的定义就先按顺序编译到了使用这些函数的文件,当然会报错。所以与其小心翼翼地安排文件顺序,不如不添加,而是按照上面帖子附件中的方法,只添加一个main文件,在main中添加用来声明函数的.h文件,而.h中声明的函数再在另一个.c的文件中书写,并#include “**.c”到.h的结尾即可。省时省力。
另:遇到过的一些奇怪的报错情况(编程能力实在是有限,所以真的是各种错误都遇到过,各位高手也可以在下面补充)
1、报错说缺少逗号或分号之类的,有可能是因为main函数的两个{}少了一个(很有可能是右边的掉了)或者说是main中函数的大括号少了一个导致main的大括号与之配对导致的错误。
2、开始调试程序没错,后来添加程序后报告那些本来没有错的函数或数组或定义出错,则有可能是因为新添加的函数或者数组或者变量定义时句末落下了分号。
一时间能想到的也就是上面这些,如再想起或再遇新问题,会另开新帖发布。感谢阅读!O(∩_∩)O~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top