C寻址和引用

时间:2016-02-05 11:37:21

标签: c pointers

关于8位和16位值的问题。

我有这个功能:

get( uint8 *temp );

我将这样使用它:

uint16 getTemp;
get( (uint8*) &getTemp );

这是否有效或者为什么不直接使用uint8来获取getTemp并跳过类型转换? 在这种情况下它可能是指针的更大地址,这就是为什么但仍然可以使用值getTemp,如:getTemp == 0x200U

1 个答案:

答案 0 :(得分:1)

地址大小将保持不变,也是地址值。

然而,有两个问题:

  1. 赋值只会修改变量的一半
  2. 它将在小端架构上设置不同(将设置低8位)和大端架构(将设置高8位)。