Помимо, возможно, некоторых неработающих библиотек C встраиваемых систем, модификатор #
должен поддерживаться повсеместно. Однако %#x
и 0x%x
- это не одно и то же. Они дают разные результаты для значения 0, и модификатор #
всегда будет печатать x
в том же случае, что и шестнадцатеричные цифры (например, %#x
дает 0xa
и %#X
дает 0XA
) при использовании 0x%X
позволит вам иметь строчные x
и заглавные шестнадцатеричные цифры (гораздо приятнее визуально, по крайней мере для меня). Поэтому я считаю, что на практике редко используется модификатор #
.