kang732816702 发表于 2013-1-2 10:22:26

如何在51中定义全局变量

编写模块化程序时遇到一个问题,在一个c文件中定义的数组无法在主函数中引用,求高手解答

kang732816702 发表于 2013-1-2 10:23:05

自己先顶下

lcofjp 发表于 2013-1-2 10:24:47

请问在主函数引用之前用extern进行声明了吗?

kang732816702 发表于 2013-1-2 10:31:46

lcofjp 发表于 2013-1-2 10:24 static/image/common/back.gif
请问在主函数引用之前用extern进行声明了吗?

声明了,也不能调用

kang732816702 发表于 2013-1-2 10:33:54

shumaguan.c中的内容

#include "shumaguan.h"
extern unsigned char zancunqu={0,0,0,0,0,0,0,0};        //八位数码管的数据暂存区
unsigned char code zima={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,
                                  0x5e,0x79,0x71,0x76,0x38,0x73,0x31,0x3e,0x6e,0x40,0x80,0x00};
//数码管共阴字码
unsigned char WEI_flag=0;

void SMGxianshi()
{
        WEI = 0x01<<WEI_flag;
        DUAN= zima];
        WEI_flag++;
        if(WEI_flag ==8) WEI_flag=0;       
}


main中的内容

#include "config.h"
void main()
{
        SMGxianshi();
        zancunqu = 1;
        while(1);
}

lcofjp 发表于 2013-1-2 10:36:08

把shumaguan.c中的extern去掉

kang732816702 发表于 2013-1-2 10:38:06

Build target 'Target 1'
compiling main.c...
MAIN.C(5): error C202: 'zancunqu': undefined identifier
compiling shumaguan.c...
Target not created

不行的

lcofjp 发表于 2013-1-2 10:39:41

shumaguan.c中
unsigned char zancunqu={0,0,0,0,0,0,0,0}; 进行定义。
main.c中
extern unsigned char zancunqu[]; 进行声明。

kang732816702 发表于 2013-1-2 10:43:04

lcofjp 发表于 2013-1-2 10:39 static/image/common/back.gif
shumaguan.c中
unsigned char zancunqu={0,0,0,0,0,0,0,0}; 进行定义。
main.c中


可以了,太感谢了

fjh120 发表于 2013-1-2 11:07:01

定义一个函数,返回数组的首地址,在主函数中定义一个指针接收这个地址。
页: [1]
查看完整版本: 如何在51中定义全局变量