【发布时间】:2017-07-21 15:49:15
【问题描述】:
好的,这是一个 C 程序......即使我把它放在正确的位置,我也会遇到这个问题。长毫秒,在打印中我有“l”。现在,x 是一个全局 int 变量,用户通过命令行参数输入 x 然后 atoi() 参数。
这个问题发生在一个函数中。我想知道我是否输出错误。在尝试输出之前将 int x 设置为这个 long ms 变量时,我应该进行类型转换还是什么?我很困惑并试图输出毫秒数。
struct timespec now;
clock_gettime(CLOCK_REALTIME, &now);
long ms;
x = ms;
ms = round(now.tv_nsec / 1.0e6);
fprintf(stdout, "l: flip\n", ms);
【问题讨论】:
-
fprintf(stdout, "l: flip\n", ms);看起来不对。您忘记添加格式说明符%ld -
警告:无效的转换说明符 ':' [-Wformat-invalid-specifier] fprintf(stdout, "%l: flip\n", ms);
-
谢谢,但它仍然会出现类似反转转换说明符的问题。
-
使用
%ld而不是%l -
谢谢。是的,嗯,至少现在它给了我一些数字……现在我必须让它更好地工作。伟大的!所以这个类型转换问题就解决了。多谢你们!我可以继续工作以完成我的计划。 :)
标签: c timer arguments real-time clock