32/64ビットビルドが混在するprintf
を実行している人には、<inttypes.h>
の使用をお勧めします。いくつかの例と使用ガイドラインを含む紹介ページまたはチュートリアルページをGoogleで検索しようとしましたが、見つかりませんでした。
誰かが<inttypes.h>
の紹介やチュートリアルを勧めることはできますか?
まずは http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html をお試しください。
新しいポータブルフォーマットマクロの使用方法のより良い例は、 avr-libc にあります。説明のために(リンクからの)例を含めました。 QNXライブラリ 人間が読める形式の説明もあります(仕様を冷静に読むのが嫌いな場合)。ただし、説明の要点にたどり着くには、ページの最後近くまでスクロールする必要があります。 。
#include <inttypes.h>
uint8_t smallval;
int32_t longval;
...
printf("The hexadecimal value of smallval is %" PRIx8
", the decimal value of longval is %" PRId32 ".\n",
smallval, longval);
これは「String」「String」暗黙の連結演算子を使用して文字列を生成することに注意してください(この例では)
"The hexadecimal value of smallval is %x, the decimal value of longval is %ld.\n"
命名規則を分解しようとすると、次のことが示されるようです。
そう PRIx8
は、16進数の8ビットにフォーマットするprintfフォーマット命令を意味します。
私はいつもそれらのことについて標準( PDFリンク )に行きます。設定されているパターンがわかれば、それほど複雑ではありません。関連するセクションは§7.8整数型のフォーマット変換<inttypes.h>
。
HPには、ポータブルコードの記述に関する優れたリファレンスがあり、inttypes.hの使用に関する具体的なアドバイスを提供しています。
私はいつもウィキペディアから始めてヘッダーを調べます。 <inttypes.h>
ウィキペディアでは非常に問題があるようです。次のステップは このサイト に行くことです。この前のサイトはすべてのマクロをリストし、例を示しています。 このサイト をチェックアウトすることもできます。これは実際にヘッダーファイルを表示します。それらのどれも、言うまでもなく実際にはチュートリアルではないと思いますが、それらは良い出発点です。