arduino不允许指定变量绝对地址该怎么办?
请教编程老师:我有一个预定义的数组序列,比如 unsigned char bytedata,那么我可以在程序中直接引用bdata做数学计算,但这个数组数据内容对我还有另一层意义,现在我想对这个数组可以进行字运算,直接引用 int worddata,实际上在内存中bdata和wdata是存储在相同的绝对地址位置上的同一段数据而已,这在arduino中怎么实现呢?最好不要一个复杂的转换操作。谢谢!备注:我原来是声明 unsigned char bytedata@0x1234
int worddata@0x1234
就可以实现的,但是arduino不认识@。 unsigned char *bytedata = 0x1234;
bytedata = new unsigned char;
int *worddata = 0x1234;
或者:
unsigned char bytedata;
int *worddata = (int*)bytedata;
建议使用这种方式
指针是个好东西…… 非常感谢!进一步学习研究! 不好意思,老师。您给的方法我还是无法使用worddata这样的变量去运算,编译出错。 我可能没描述清楚,下面的语句:int thisByte1 = worddata;是编译运行没问题的,但是worddata = 0;这样的赋值语句是不能通过编译的,错误提示是:error: 'worddata' does not name a type。 我编译没问题 谢谢老师,找到问题原因了,赋值语句不能不在函数之内使用,我没注意到。 还有一个附带问题啊,如果我有另一个数组worddata2对应的是bytedata里面的bytedata-bytedata,我又应该怎么声明呢?用法是一样的。 谢谢老师,我学会了。
页:
[1]