Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个结构tcp_option_t,即N字节。如果我有一个指针tcp_option_t* opt,并且我希望它增加 1,我不能使用opt++或++opt因为它会增加sizeof(tcp_option_t),即N.
tcp_option_t
N
tcp_option_t* opt
opt++
++opt
sizeof(tcp_option_t)
我只想将此指针移动 1 个字节。我目前的解决方案是
opt = (tcp_option_t *)((char*)opt+1);
但这有点麻烦。有没有更好的方法?
我建议你创建一个 char 指针并用它来横向你的结构。
char *ptr = (char*) opt; ++ptr; // will increment by one byte
当您需要从 ptr 再次恢复您的结构时,只需执行通常的强制转换:
opt = (tcp_option_t *) ptr;