問題
私は GLib 2.0 ライブラリを利用しており、gunit64 変数を宣言しています。その値を画面に出力したいのですが、正しく機能しません。
コード
例として、次のコード スニペットを検討してください。guint64 変数を宣言し、その値を出力しようとしました。
guint64 myValue = 24324823479324;
printf("My Value: %d\n", myValue);
警告
次の警告が表示されます。
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘guint64’
出力
画面に奇妙な負の数が表示されます。
私の値: -1871285220
その他のコメント
API のドキュメントを検索しようとしたところ、guint64 の下に次のものが見つかりました。
すべてのプラットフォームで 64 ビットであることが保証されている符号なし整数。この型の値の範囲は 0 ~ G_MAXUINT64 (= 18,446,744,073,709,551,615) です。
このタイプの値を印刷またはスキャンするには、G_GINT64_MODIFIER および/または G_GUINT64_FORMAT を使用します。
したがって、修飾子またはフォーマット定義のいずれかを使用する必要があると思います。ただし、ドキュメントにはそれらの使用方法が示されていません。誰でも私を助けてもらえますか?