спецификатор формата для апреля apr_time_h - PullRequest
1 голос
/ 01 ноября 2011
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 ]

2 голосов
/ 01 ноября 2011

APR содержит макрос с именем APR_TIME_T_FMT, который может делать то, что вы хотите.

При построении строки формата вы используете ее следующим образом (при условии, что она работает как макросы stdint): printf("time: %" APR_TIME_T_FMT, value);
Вы также можете просто привести значение к соответствующему типу.

2 голосов
/ 01 ноября 2011

Попробуйте:

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

Учебник .

0 голосов
/ 01 ноября 2011

, если вы открыли страницу руководства printf с помощью

man 3 printf

и прочитайте о формате printf, вы не найдете ничего для простоты типа apr_time_t.

...