以下の内容はhttps://pyopyopyo.hatenablog.com/entry/20110530/p1より取得しました。


32bit/64bit 両対応な printf の書き方

32bit/64bit両対応のコードを書いていると,よく printf() で引っかかります."%d"のような"書式"がややこしいからです.

というわけで,変数の"型"と"書式"の対応を,表で整理してみました.

書式 注意事項
ssize_t %zd
size_t %zu
intmax_t %jd
uintmax_t %ju
ptrdiff_t %t
signed char %hhd
unsigned char %hhu
short int %hd
unsigned short int %hu
int %d
unsigned int %u
long int %ld
unsigned long int %lu
long long int %lld
unsigned long long int %llu
int32_t %PRId32 以下,#include が必要(下記参照)
uint32_t %PRIu32
int64_t %PRId64
uint64_t %PRIu64

補足1: 16進数等の表示

  • 16進表示の場合は 上表の"u" を "x" に置き換える.例)"%lu" → "%lx"
  • 8進数表示の場合は 上表の"u" を "o" に置き換える.例) "%lu" → "%lo"

補足2: inttypes.hの使い方

#define __STDC_FORMAT_MACROS
#include <inttypes.h>

または

#include <cinttypes>

ソースコードに書く.



posted with amazlet at 11.05.31
青木 峰郎
ソフトバンククリエイティブ
売り上げランキング: 24553


posted with amazlet at 11.05.31
ニール マシュー リチャード ストーンズ
ソフトバンククリエイティブ
売り上げランキング: 228430




以上の内容はhttps://pyopyopyo.hatenablog.com/entry/20110530/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14