【发布时间】:2011-01-13 22:44:36
【问题描述】:
我一直在尝试创建一个 for 循环,该循环将根据网络数据包的长度进行迭代。在 API 中,通过 event.packet->dataLength 存在一个变量 (size_t)。我想从 0 迭代到 event.packet->dataLength - 7 每次迭代时 i 增加 10,但我遇到了麻烦。
我寻找解决方案,但找不到任何有用的东西。我尝试将 size_t 转换为 unsigned int 并用它进行算术运算,但不幸的是它不起作用。基本上我想要的就是这个:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
虽然每次我做这样的事情或尝试转换时, i
【问题讨论】:
-
想一想:
static_cast<unsigned int>(-1)的值是多少?当event.packet->dataLength小于 7 时会发生什么? -
为什么
i也不能成为size_t?此外,除非长度始终等于 7 mod 10,否则这是一个非常特殊的循环尝试。 -
您是否尝试将
event.packet->dataLength转换为int? -
虽然我们可以修复类型不一致,但我们无法修复您的逻辑,直到您 tell us the goal and your code。
-
@genpfault 哇,我什至没有想到,目前它不起作用,但很可能是因为它小于 7。我讨厌我做愚蠢的事情。