这是调用方任务在发送消息时分配的16位无符号值。对于每个新消息,该值都会增加一个值,最终会换行并生成序列0、1、2、……655336553465535、0等。因此,我需要一个计数器来查找目标。我需要帮助才能找到最有效的方法。例如,如果当前值为65534,目标计数为5,则需要一个函数来包装并将目标设置为正确的值。

最佳答案

如果您使用的是unsigned int计数器,那么您只需执行(x + 5) & 0xffffU-不需要检查溢出,因为无符号类型中的算术被定义为在C中环绕,而无符号类型必须使用纯二进制表示。

关于c - 环绕整数的最优雅方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20257210/

10-09 09:01