В C, я бы хотел использовать printf для отображения указателей, и поэтому они правильно выстраиваются в линию, я хотел бы добавить их в 0s.
Я предполагал, что правильный способ сделать это:
printf("%016p", ptr);
Это работает, но этот gcc жалуется на следующее сообщение:
warning: '0' flag used with ‘%p’ gnu_printf format
Я немного искал его, и следующий поток относится к одной теме, но на самом деле не дает решения.
http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg00484.html
Считая, что причина, по которой gcc жалуется, заключается в том, что предложенный мной синтаксис не определен в C99. Но я не могу найти другого способа сделать то же самое стандартным одобренным способом.
Итак, вот двойной вопрос:
- Насколько я понимаю, что это поведение не определено стандартом C99?
- Если да, есть ли одобренный стандарт, переносимый способ сделать это?