Ответ 1
В соответствии с C99 он должен быть "% lld" (см., например, здесь). Если Diab C не является C99, вам нужно будет посмотреть документы компилятора, которые я не могу найти в Интернете с помощью быстрого Googling.
Я объявляю переменную для 64-битного счетчика следующим образом:
long long call_count;
Каков спецификатор формата, который я должен использовать в операциях печати?
Я пробовал,% l,% ld,% ll. Кажется, что нет прав.
Я использую компилятор Diab C для компиляции кода приложения для работы в операционной системе pOS.
В соответствии с C99 он должен быть "% lld" (см., например, здесь). Если Diab C не является C99, вам нужно будет посмотреть документы компилятора, которые я не могу найти в Интернете с помощью быстрого Googling.
It "%lli"
(или эквивалентно "%lld"
)
Microsoft и Watcom используют %I64d
(заглавный глаз), другие используют %lld
(нижний регистр ell ell).
Может быть,% lld? Я думаю, что это формат для gcc, ничего не знаю о компиляторе Diab C.
Этот и даже немного более описан здесь: кросс-платформенная печать 64-битных целых чисел с помощью printf
TL; ДР: Вы можете использовать макрос PRId64 (из inttypes.h) для печати 64-битных целых чисел в десятичной форме в переносном режиме. Существуют и другие макросы (например, PRIx64).
не должно быть% lld?
Это% lld для подписанных и% llu для unsigned
long long t1; //signed
unsigned long long t2; //unsigned
printf("%lld",t1);
printf("%llu",t2);