C++ clock()函数达最大值后停止而非回滚,该行为是否有文档说明?
寻求
clock()溢出后持续返回最大值的官方文档 - 背景:维护遗留C++代码时遇到
clock()函数的异常行为:- 代码中
clock_t在<time.h>中定义为long,CLOCKS_PER_SEC值为1000,因此clock()返回程序启动后的毫秒数 - 通过
std::numeric_limits<clock_t>::max()计算可知,程序运行约24.9天后,clock()会达到类型上限
- 代码中
- 问题:原代码假设
clock()达到最大值后会回滚至0,但经25天实际测试,发现该函数达到上限后持续返回最大值,直接引发代码崩溃 - 已解决:基于
std::chrono::steady_clock实现了新的计时器方案,支持纳秒级精度,约292年后才会出现回滚 - 需求:已尝试多方查找,但未找到关于
clock()此溢出行为的官方文档记录,恳请提供相关资源用于问题报告
内容的提问来源于stack exchange,提问作者Dan B.
相关产品推荐
相关产品推荐

