我有一个结构tcp_option_t
,这是N
字节。 如果我有一个指针tcp_option_t* opt
,我希望它由1递增,我无法使用opt++
或++opt
,因为这将通过递增sizeof(tcp_option_t)
这是N
。
我想只有一个字节来移动该指针。 我目前的解决方案是
opt = (tcp_option_t *)((char*)opt+1);
但它是一个有点麻烦。 是否有更好的办法?
我有一个结构tcp_option_t
,这是N
字节。 如果我有一个指针tcp_option_t* opt
,我希望它由1递增,我无法使用opt++
或++opt
,因为这将通过递增sizeof(tcp_option_t)
这是N
。
我想只有一个字节来移动该指针。 我目前的解决方案是
opt = (tcp_option_t *)((char*)opt+1);
但它是一个有点麻烦。 是否有更好的办法?
我建议你创建字符的指针,并用它来横向你的结构。
char *ptr = (char*) opt;
++ptr; // will increment by one byte
当你需要重新恢复你的结构,从PTR,只是做一般的转换:
opt = (tcp_option_t *) ptr;