Из справочной страницы printf(3)
в моем Mac OS X box (следовательно, реализация стандартной библиотеки BSD c):
аА
Двойной аргумент округляется и преобразуется в шестнадцатеричный нота-
в стиле [-] 0xh.hhhp [+ -] d, где количество цифр
после того, как символ шестнадцатеричной точки равен точности
Спецификация. Если точность отсутствует, она принимается за
достаточно для точного представления числа с плавающей точкой, и нет
происходит округление. Если точность равна нулю, шестнадцатеричная точка отсутствует
персонаж появляется. Р - это буквальный символ p', and the
exponent consists of a positive or negative sign followed by a
decimal number representing an exponent of 2. The A conversion
uses the prefix ``0X'' (rather than ``0x''), the letters
``ABCDEF'' (rather than ``abcdef'') to represent the hex digits,
and the letter
Р '(а не `р') для разделения мантиссы и
показатель.
'p' (или 'P') служит для отделения (шестнадцатеричной) мантиссы от (шестнадцатеричной) степени.
Эти спецификаторы не в моем K & R, и на странице руководства не указано, какой стандарт (если есть) определяет их.
Я только что установил свой Debian 5.0 box (используя glibc 2.7), который также имеет ; на этой странице руководства написано, что она связана с c99 (опять же, нет ссылки на какой-либо конкретный стандарт).