昨晚看了下模块化编程的东西,把自己的工程整了整,可惜没成功。今早发神经似的起床敲代码,很快就发现了错误,原来是条件宏定义的头文件名忘改了,汗!!!
整理下模块化编程的要点,感谢以下三位UP主的帖子:
http://blog.youkuaiyun.com/zhzht19861011/article/details/5974945
http://jyqcxl122621.blog.163.com/blog/static/61323392201172392519647/
http://bbs.mydigit.cn/read.php?tid=536508
通俗来讲:
1. h中只有宏定义和变量、函数声明,.c中包含.h,并有变量、函数定义。
2. 其他模块想要引用该模块的变量和函数,需在该模块.h中对变量、函数的声明前加extern。
3. 为避免重复定义,每个.h都应写为以下形式(以HAL.h为例):
#ifndef __HAL_H__
#define __HAL_H__
#include
#define xxx xxxx
sbit ss = xxx;
.....
#endif
一、关于全局变量的定义、声明、引用: 在某个c文件里定义全局变量后,在其它c文件要用,则在要用c文件里用extern进行声明。
(1)在定义全局变量时可同时将其初始化
(2)在用extern声明时不能再初始化,否则编译器报错
举例:有两个c文件分别为one.c和two.c,two中要用