gpt4 book ai didi

c++ - clock() 在调试版本上运行良好,但在发布版本上不起作用(C++ VS2010)

转载 作者:太空狗 更新时间:2023-10-29 23:37:20 25 4
gpt4 key购买 nike

这是我的代码:

// Start performance test clock
assert((start=clock())!=-1);

// Some reading and writing methods

// Get stop time
stop = clock();

cout << stop << endl;

// Calculate operation time
double result = (double)(stop-start)/CLOCKS_PER_SEC;

// Print result
cout << "--> Finished analysing in " << result << "s" << endl;

当我调试我的程序时效果很好,但是当我运行发布版本时,stop 收到的值比 start 小很多,result 为负数。

有什么想法吗?

最佳答案

start 的赋值不应该在assert 语句中。 assert 在发布版本中通常是空操作。因此,在调试版本中,语句 start=clock() 将被执行,但在发布版本中,它不会。所以有可能(取决于之前的代码和 start 的声明)它没有被初始化。通常希望避免使用有副作用的 assert 语句;它会导致调试版本和发布版本之间出现细微的差异/错误。

这样写可能会更好:

start = clock();
assert(start != -1);

关于c++ - clock() 在调试版本上运行良好,但在发布版本上不起作用(C++ VS2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com