【发布时间】:2014-04-30 12:28:58
【问题描述】:
我想将一个 uchar 数组转换为 uint8 指针。由于两者都是 8 位,值范围从 0 到 255,所以我认为它不应该引起和问题。
uchar list[100];
我必须将上面的列表传递给一个接受指向 uint8t 的指针的函数。 我可以这样通过吗:
(uint8t *)list
这样当我将其读取为 uint8 时它不会影响该值。
【问题讨论】:
-
应该可以,试一试。
-
是的,如果你说的是标准类型
uint8_t,那很好,也很正确。 -
这违反了严格的别名规则。
-
好吧,如果你的意思是
unsigned char和 unicode char,通常应该没问题。标准说 char 应该至少 8 位宽,以允许 C 编译器在将 9、10、12、16 等位视为 char 的机器上更简单,但我的猜测是你可能不会在这样的机器上运行它. -
另外,正如 ajay 提到的,google 严格的别名规则
标签: c pointers char uint8t pointer-conversion