2013-05-13 5 views
1

Я использую код :: блоки с окнами для программирования в c. В последнее время я столкнулся с несколькими проблемами, пытаясь найти адреса и значения, хранящиеся в адресах поплавков, длинных длин и т. Д. Я понял, что мне нужно использовать «I64d» вместо «lld». Есть ли список спецификаторов формата, которые я должен использовать вместо «нормальных» (например, «d», «ld», «lld» и т. Д.)? Благодарю.Каковы спецификации формата, которые я могу использовать?

+0

"типы аргументов"? Я понимаю, что вы имеете в виду «спецификаторы формата». И: «вместо« нормальных »- какие обычные? Похоже, вы должны были показать код вместо нечетких разговоров. – sehe

+0

@sehe «Обычными» будут преобразования, указанные в стандарте. –

+0

@sehe, Да, извините, я не знал, как их называли, и первая ссылка google была именно таковой. Исправленный. – user2377414

ответ

0

Все спецификаторы формата показаны в стандарте. Текущий стандарт C11 показывает «нормальные» в 7.20.6.1 The fprintf function.

Однако существуют также «дополнительные» целые типы (такие как uint16_t), определенные в stdint.h. Соответствующие макросы fprintf для использования в качестве спецификаторов формата для этих типов включены в inttypes.h и подробно описаны в стандарте, 7.8.1 Macros for format specifiers.

Примером может быть:

int16_t val = 42; 
printf ("val = %2" PRId16 "\n", val); 

Имейте в виду, что существуют также эквиваленты для fscanf сторону вещей, а также, с макросами, начиная с SCN вместо PRI.

Смежные вопросы