apr apr_time_h的格式说明符

时间:2011-11-01 07:26:47

标签: c apr

gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
    Apache protable runtime 1.4
    c89 and compiling in -m32 mode

代码:

apr_time_t time_msecs = 0;
time_msecs = apr_time_as_msec(apr_time_now());
printf("Time in msecs [ %lu ]\n", time_msecs);

我收到以下警告:

format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘apr_time_t’ [-Wformat]

除了演员。这种类型的正确格式说明符是什么(apr_time_t)?

非常感谢任何建议,

3 个答案:

答案 0 :(得分:2)

APR包含一个名为APR_TIME_T_FMT的宏,可以执行您想要的操作。

在构建格式字符串时,您可以像这样使用它(假设它的作用类似于stdint宏):printf("time: %" APR_TIME_T_FMT, value);
您也可以简单地将值转换为适当的类型。

答案 1 :(得分:2)

尝试:

printf("The current time: %" APR_TIME_T_FMT "[us]\n", apr_time_now());

Tutorial

答案 2 :(得分:-1)

如果您使用

打开printf手册页
  

man 3 printf

并且读取有关printf格式的内容将找不到apr_time_t类型明确的任何内容。