C:正确增加uint8大端串

时间:2016-10-30 14:27:21

标签: string increment uint32

有没有一种正确的方法来增加大端格式的uint8字符串? 例如,我有:

uint8 test[] = {0,0,0,1};

test[3]++; //works

但是也可以某种方式以这种方式增加一个类型转换?

 *test = (uint32) *test+1; //doesnt work... Only the first test[0] will be incremented... 

谢谢。

1 个答案:

答案 0 :(得分:0)

这个怎么样:

((uint32_t*)test)++;

但是这仍然以原生字节顺序运行。

如果网络顺序中有缓冲区,则应执行以下操作:

uint32_t *p = (uint32_t*)test;
uint32_t temp = ntohl(*p);
temp++;
*p = htonl(temp);