我想将一个uchar数组转换为uint8指针。因为两者都是8位,值范围从0到255,所以我认为它不应该引起和发出。
uchar list[100];我必须将上面的列表传递给接受指向uint8t的指针的函数。我能这样递过来吗?
(uint8t *)list这样,当我将它作为uint8读取时,它不会影响它的值。
发布于 2014-03-23 13:16:24
那么,uchar和uint8_t不一定是相同的宽度!从技术上讲,一个字符可以有16位宽。这是一个罕见的,但它的发生,特别是在嵌入式世界。因此,uchar可能不是8位类型,但uint8始终是8位类型。
如果uchar确实不是一个字节,那么从uchar []到uint8_t *的转换消除了对齐限制。对于不支持对齐访问的平台(闻起来像再次嵌入!)试图像这样演戏会是个小问题。如果使用GCC进行编译,则添加-Wcast-align标志以捕捉类似的问题。
https://stackoverflow.com/questions/22587555
复制相似问题