標(biāo)題: 模塊化編程全局變量在多個(gè)。c文件中使用,麻煩幫忙看看吧 [打印本頁(yè)]

作者: aaa123    時(shí)間: 2013-8-14 16:13
標(biāo)題: 模塊化編程全局變量在多個(gè)。c文件中使用,麻煩幫忙看看吧
下面是main。c里面的一部分
#include<reg51.h>
#include"1602.h"
uint year;
uchar month,day,hour,minutte,sec;//年,月,天,時(shí),分,秒
uchar n,k1_num;//前者用來(lái)控制1s,后者用來(lái)記k1按下幾次
uchar XingQi;//用來(lái)顯示星期幾,0對(duì)應(yīng)星期一,以此類(lèi)推
下面是全局變量聲明的。h文件
#ifndef __1602_H__
#define __1602_H__
#include"delay.h"
void write_com(uchar common);   //1602寫(xiě)指令函數(shù)
void write_data(uchar Data);        //1602寫(xiě)數(shù)據(jù)函數(shù)
void init_1602();              //1602初始化函數(shù)
//void lcd_display();         //1602顯示函數(shù)
extern uint year;
extern uchar month,day,hour,minutte,sec;//年,月,天,時(shí),分,秒
extern uchar n,k1_num;//前者用來(lái)控制1s,后者用來(lái)記k1按下幾次
extern uchar XingQi;//用來(lái)顯示星期幾,0對(duì)應(yīng)星期一,以此類(lèi)推
#endif

這是另一個(gè)。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;  //用來(lái)關(guān)閉數(shù)碼管
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;//年,月,天,時(shí),分,秒
//uchar n,k1_num;//前者用來(lái)控制1s,后者用來(lái)記k1按下幾次
//uchar XingQi;//用來(lái)顯示星期幾,0對(duì)應(yīng)星期一,以此類(lèi)推


同時(shí)使用。h里面的全局變量怎么報(bào)重復(fù)定義的錯(cuò)誤;那到底怎樣在多個(gè)。c文件中使用同一個(gè)變量
謝謝了



作者: livingliving    時(shí)間: 2015-4-10 09:11
雖然不懂,但還是要頂,畢竟每一位老手都是從新手蛻變而來(lái)的,贊一個(gè)。。。。。。
作者: xiao_yp2014    時(shí)間: 2015-4-10 09:20
模塊化編程,我談我的看法:
1、首先,一個(gè).c文件就要對(duì)應(yīng)一個(gè).h文件。如下
   Delay.h要對(duì)應(yīng)一個(gè)Delay.c
那么.h里面定義了的,就可以在.c里面使用。而不需要在.c里面重復(fù)定義。
其它幾點(diǎn)就不說(shuō)了,而你沒(méi)有遵循這第一個(gè)原則,所以要報(bào)重復(fù)定義的錯(cuò)誤。
   




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1