Что означает спецификатор формата% qx - PullRequest
1 голос
/ 24 ноября 2011

В следующей функции obj-c, что означает спецификатор формата% qx (я хотел бы представить вопрос также для использования с printf и co.)

+(NSString*)stringForHash:(uint64_t)hash
{
    return [NSString stringWithFormat:@"%qx", hash];
}

Я предполагаю, что это означает печатать 64 бита в шестнадцатеричном виде, в отличие от %x, который будет печатать только 32 бита. Однако я не могу найти хорошую ссылку, подтверждающую это нигде. Что означает q? Может ли оно использоваться совместно с чем-либо кроме x в спецификаторах формата?

Ответы [ 3 ]

4 голосов
/ 24 ноября 2011

q является четырехугольным, аналогично ll.

P.S .: printf на man-странице написано "Не используйте"; -)

3 голосов
/ 24 ноября 2011

Из Википедия :

это расширение до C99, означающее

"q - для целочисленных типов приводит к тому, что printf ожидает 64-битный (четырехзначное) целочисленный аргумент. Обычно встречается на платформах BSD"

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

Вы можете получить спецификаторы формата от здесь

...