这两种类型有什么区别/用途?我对指针有一个基本的了解,但我无法解决这个问题。
uint8_t* address_at_eeprom_location = (uint8_t*)10;
在Arduino示例中找到的这条线让我感到非常愚蠢。 :)
所以基本上这是一个双指针?
答案 0 :(得分:0)
uint_t是无符号整数,这是直接存储在内存中的数据。 uint_t *是指向存储该号码的存储器的指针。 (uint_t *)是10 - (将文字转换为内存中的数字,因此数字10的二进制表示)转换为指针类型。这将创建存储10的存储,然后将使用其地址并将其存储在address_at_eeprom_location变量中。
答案 1 :(得分:0)
uint8_t
是无符号8位整数
uint8_t*
是指向ram
(uint8_t*)10
是指向ram中地址10处的uint8_t的指针
所以基本上这一行通过将uint_8
设置为10来保存address_at_eeprom_location
中uint8_t x = address_at_eeprom_location[3]
的位置地址。很可能在代码后面这个地址用于写入/读取实际的uint8_t值往返那里。
代替单个值,这也可以在代码中用作数组的起点:
setContentView
这将读取第3个uint8_t,从地址10(因此在地址13)开始,在ram中变为x