uint8_t *与uint8_t之间的区别

时间:2014-08-06 13:37:57

标签: pointers arduino

这两种类型有什么区别/用途?我对指针有一个基本的了解,但我无法解决这个问题。

uint8_t* address_at_eeprom_location = (uint8_t*)10;

在Arduino示例中找到的这条线让我感到非常愚蠢。 :)

所以基本上这是一个双指针?

2 个答案:

答案 0 :(得分:0)

uint_t是无符号整数,这是直接存储在内存中的数据。 uint_t *是指向存储该号码的存储器的指针。 (uint_t *)是10 - (将文字转换为内存中的数字,因此数字10的二进制表示)转换为指针类型。这将创建存储10的存储,然后将使用其地址并将其存储在address_at_eeprom_location变量中。

答案 1 :(得分:0)

uint8_t是无符号8位整数

uint8_t*是指向ram

中8位整数的指针

(uint8_t*)10是指向ram中地址10处的uint8_t的指针

所以基本上这一行通过将uint_8设置为10来保存address_at_eeprom_locationuint8_t x = address_at_eeprom_location[3] 的位置地址。很可能在代码后面这个地址用于写入/读取实际的uint8_t值往返那里。

代替单个值,这也可以在代码中用作数组的起点:

setContentView

这将读取第3个uint8_t,从地址10(因此在地址13)开始,在ram中变为x