有没有一种正确的方法来增加大端格式的uint8字符串? 例如,我有:
uint8 test[] = {0,0,0,1};
test[3]++; //works
但是也可以某种方式以这种方式增加一个类型转换?
*test = (uint32) *test+1; //doesnt work... Only the first test[0] will be incremented...
谢谢。
答案 0 :(得分:0)
这个怎么样:
((uint32_t*)test)++;
但是这仍然以原生字节顺序运行。
如果网络顺序中有缓冲区,则应执行以下操作:
uint32_t *p = (uint32_t*)test;
uint32_t temp = ntohl(*p);
temp++;
*p = htonl(temp);