clock()不允许我存储在clock_t变量中

时间:2013-12-16 18:40:22

标签: c time microcontroller

我正在为 C2000微控制器编写一些代码,我正在尝试使用time.h计算代码的某些段。但是,当我输入此代码时:

clock_t begin = clock();

它发回了一堆错误。包括一个说:error: function call is not allowed in a constant expression。但我不相信这是一个不变的表达。

有没有人知道这里会发生什么?

进一步的错误包括:

  

- output_all_syms --cdebug_asm_data --preproc_with_compile - preproc_dependency =“Example_2802xAdcTempSensor.pp”“../ Example_2802xAdcTempSensor.c”       “../Example_2802xAdcTempSensor.c”,第155行:错误:预期为“}”       clock_t start = clock();

     

“../ Example_2802xAdcTempSensor.c”,第155行:错误:函数调用不是             允许持续表达     clock_t start = clock();                     ^

提前致谢。

2 个答案:

答案 0 :(得分:4)

将其拆分为两行:

clock_t begin;
begin = clock();

编译器希望初始化是一个常量表达式(根据错误消息) - 函数调用不是。

通过像这样拆分,你会说“当程序运行时到达这一点,那是我想要评估这个功能的时间”。一切都会好的。

答案 1 :(得分:0)

事实证明,定义必须移到主循环之外。一旦我这样做,它工作得很好。