打印长双精度值和clock_t作为双精度值 - ESP8266-RTOS-SDK

问题描述 投票:0回答:1

我无法将clock_t打印为双倍或打印时间已过

void app_main()
{
 clock_t start, end;
 long double cpu_time_used;
 start = clock();
 
 ESP_LOGI(TAG, "Elapsed time");
 ESP_LOGI(TAG, "Starting time: %Lf", (long double)start);
 end = clock();
 ESP_LOGI(TAG, "Ending time: %ld", end);
 cpu_time_used = (( long double) (end - start)) / CLOCKS_PER_SEC;
 ESP_LOGI(TAG, "Elapsed time: %Lf ms", cpu_time_used);
}

这是我的日志:

我 (241) 使用 mex 申请:已用时间

我(243)使用墨西哥的申请:开始时间:

我(248)使用mex申请:结束时间:2

我 (255) 使用 mex 的应用程序:经过的时间:毫秒

我(264)使用 mex 申请:经过的时间:s

我真的不明白为什么

c esp8266 rtos elapsedtime
1个回答
0
投票

尝试打印

double
。我怀疑你的
ESP_LOGI()
不支持
long double

IAC

double
足够的精度和范围。

使用

ESP_LOGI(TAG, "Starting time: %f", (double)start);
或尝试使用
ESP_LOGI(TAG, "Starting time: %a", (double)start);
获取精确值。

© www.soinside.com 2019 - 2024. All rights reserved.