C では、printf を使用してポインターを表示したいのですが、ポインターが適切に整列するように、ポインターを 0 で埋めたいと考えています。
私の推測では、これを行う適切な方法は次のとおりでした。
printf("%016p", ptr);
これは機能しますが、この gcc には次のメッセージが表示されます。
警告: '%p' gnu_printf フォーマットで使用される '0' フラグ
私はそれについて少しグーグルで調べました.次のスレッドは同じトピックに関するものですが、実際には解決策を提供していません.
http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg00484.html
それを読むと、gcc が文句を言うのは、私が提案した構文が C99 で定義されていないことが原因のようです。しかし、標準的に承認された方法で同じことを行う他の方法を見つけることができないようです。
だからここに二重の質問があります:
- この動作は C99 標準で定義されていないという私の理解は正しいですか?
- もしそうなら、これを行うための標準的に承認されたポータブルな方法はありますか?