找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4956|回复: 2
收起左侧

模块化编程全局变量在多个。c文件中使用,麻烦帮忙看看吧

[复制链接]
ID:51960 发表于 2013-8-14 16:13 | 显示全部楼层 |阅读模式
下面是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文件中使用同一个变量
谢谢了


回复

使用道具 举报

ID:76287 发表于 2015-4-10 09:11 | 显示全部楼层
虽然不懂,但还是要顶,毕竟每一位老手都是从新手蜕变而来的,赞一个。。。。。。
回复

使用道具 举报

ID:69862 发表于 2015-4-10 09:20 | 显示全部楼层
模块化编程,我谈我的看法:
1、首先,一个.c文件就要对应一个.h文件。如下
   Delay.h要对应一个Delay.c
那么.h里面定义了的,就可以在.c里面使用。而不需要在.c里面重复定义。
其它几点就不说了,而你没有遵循这第一个原则,所以要报重复定义的错误。
   

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表