3 c++ int memory-management increment long-integer
不是很好的标题,但我不知道该命名.
无论如何,我在计算我的游戏中的总帧数(所以我可以计算平均FPS)long int
.为了防止游戏持续很长时间,我该怎么做才能确保我的游戏long int
不会超过其限制?如果超过限制会发生什么?
谢谢.
任何类型的计数器都存在此问题.
对于您的具体问题,我不担心.
一个long int
在最糟糕的情况下计数到20亿(甚至更多)(32位计算机/控制台).假设你的游戏每秒1000帧(这是很多!),你的计数器需要20000000秒才能超时:超过5000小时,超过231天.
如果你尝试长时间运行它,我很确定其他东西会导致你的游戏停止!
整个游戏过程中的平均 FPS 似乎并不是一个非常有用的统计数据。通常,您希望测量峰值和谷值,例如最高 fps/最低 fps 以及低于和高于阈值的帧数。
但事实上,我并不担心。即使您只使用 32 位无符号整数,您的游戏也可以以 60fps 运行 19884 小时,然后才会溢出。你应该没问题。
编辑:
在这种情况下检测溢出的最佳方法是检查整数在增加后值是否减少。如果是这样,您可以在周围保留另一个计数器,该计数器是您溢出的次数。