请教一个编程中数组定义的问题

2019-07-21 05:21发布

想定义有一个数组,名称相同,但里面的元素不同,想利用单片机某脚读入高低电平不同,来相应定义这个名称相同内容不同的数组,来达到用同一个函数在不同场合调用不同的数组元素的目的。实际就是两个数组,但为了后面程序调用方便,而起了相同的名字。
如:

if(PIND.4==1)
   {flash uchar A[]={1,2,3} ;   }
else if(PIND.4==0)
   {flash uchar A[]={4,5,6}    }
我将这段代码放在主函数里,结果编译通不过,后面的程序引用这个数组时,说这个数组A未定义,请问应该怎样处理?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
MCUbiubiubiu
1楼-- · 2019-07-21 07:20
 精彩回答 2  元偷偷看……
MCUbiubiubiu
2楼-- · 2019-07-21 10:57
数组我知道的只有逐个赋值和memcpy函数你可以试试memcpy函数
mack13013
3楼-- · 2019-07-21 16:24
你定义的数组在执行到  }  的时候生命周期就结束了,所以,在  }  之外的语句看到A的时候就会提示A未定义。你看一下C++/C的书籍吧。
解决方法:
1、你定义好一个全局数组,在PIND.4的值不同的时候,对数组进行不同的赋值。
2、定义一个全局指针,在PIND.4数值不同的时候动态创建数组,并且将全局指针指到动态创建的数组上。(此方法记得内存回收)
MCUbiubiubiu
4楼-- · 2019-07-21 16:38
受教了
rjx007
5楼-- · 2019-07-21 20:58
感谢mack13013的详细解答。一用第一个方法了。

一周热门 更多>