标题: 模块化编程全局变量在多个。c文件中使用,麻烦帮忙看看吧 [打印本页]

作者: aaa123    时间: 2013-8-14 16:13
标题: 模块化编程全局变量在多个。c文件中使用,麻烦帮忙看看吧
下面是main。c里面的一部分
#include<reg51.h>
#include"1602.h"
uint year;
uchar month,day,hour,minutte,sec;//年,月,天,时,分,秒
uchar n,k1_num;//前者用来控制1s,后者用来记k1按下几次
uchar XingQi;//用来显示星期几,0对应星期一,以此类推
下面是全局变量声明的。h文件
#ifndef __1602_H__
#define __1602_H__
#include"delay.h"
void write_com(uchar common);   //1602写指令函数
void write_data(uchar Data);        //1602写数据函数
void init_1602();              //1602初始化函数
//void lcd_display();         //1602显示函数
extern uint year;
extern uchar month,day,hour,minutte,sec;//年,月,天,时,分,秒
extern uchar n,k1_num;//前者用来控制1s,后者用来记k1按下几次
extern uchar XingQi;//用来显示星期几,0对应星期一,以此类推
#endif

这是另一个。c文件
#include<reg51.h>
#include"delay.h"
#include"1602.h"
//uchar code table1[]="  2013-08-13";
//uchar code table2[]="   00:00:00";
//uchar code table3[][3]={"Mon","Tur","Wed","Thu","Fri","Sat","Sun"};
sbit du=P2^6;  //用来关闭数码管
sbit we=P2^7;
sbit RS=P1^0; //1602管脚
sbit RW=P1^1;
sbit EN=P2^5;
//uint year;
//uchar month,day,hour,minutte,sec;//年,月,天,时,分,秒
//uchar n,k1_num;//前者用来控制1s,后者用来记k1按下几次
//uchar XingQi;//用来显示星期几,0对应星期一,以此类推


同时使用。h里面的全局变量怎么报重复定义的错误;那到底怎样在多个。c文件中使用同一个变量
谢谢了



作者: livingliving    时间: 2015-4-10 09:11
虽然不懂,但还是要顶,毕竟每一位老手都是从新手蜕变而来的,赞一个。。。。。。
作者: xiao_yp2014    时间: 2015-4-10 09:20
模块化编程,我谈我的看法:
1、首先,一个.c文件就要对应一个.h文件。如下
   Delay.h要对应一个Delay.c
那么.h里面定义了的,就可以在.c里面使用。而不需要在.c里面重复定义。
其它几点就不说了,而你没有遵循这第一个原则,所以要报重复定义的错误。
   




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1