Спецификатор формата для «long long» - PullRequest
39 голосов
/ 20 января 2009

Я объявляю переменную для 64-битного счетчика как:

long long call_count;

Какой спецификатор формата мне следует использовать в операторах печати?

Я пытался, %l, %ld, %ll. Ни один из них не кажется правильным.

Я использую компилятор Diab C для компиляции кода моего приложения для работы в операционной системе pSOS.

Ответы [ 7 ]

58 голосов
/ 20 января 2009

Согласно C99, это должно быть "% lld" (см., Например, здесь ). Если Diab C не C99, то вам придется взглянуть на документы компилятора, которые я не могу найти в Интернете с помощью быстрого поиска в Google.

15 голосов
/ 20 января 2009

Это "%lli" (или эквивалентно "%lld")

11 голосов
/ 20 января 2009

Microsoft и Watcom используют %I64d (заглавные буквы), другие используют %lld (строчные буквы).

5 голосов
/ 06 августа 2013

Это и даже немного больше было описано здесь: межплатформенная печать 64-битных целых чисел с printf

TL; DR: Вы можете использовать макрос PRId64 (из inttypes.h) для печати 64-битных целых чисел в десятичном виде в полупортативном виде Есть и другие макросы (например, PRIx64).

2 голосов
/ 20 января 2009

Может быть,% lld? Я думаю, что это формат для gcc, ничего не знаю о компиляторе Diab C.

1 голос
/ 21 января 2009

Это% lld для подписанных и% llu для неподписанных

0 голосов
/ 03 сентября 2017
long long t1;             //signed
unsigned long long t2;    //unsigned

printf("%lld",t1);
printf("%llu",t2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...