タグ付けされた質問 「format-specifiers」



8
Cで「unsigned long」を印刷する方法は?
unsigned longCでデータ型を出力する方法を理解できません。 がであるunsigned_fooとするunsigned longと、私は試してみます: printf("%lu\n", unsigned_foo) printf("%du\n", unsigned_foo) printf("%ud\n", unsigned_foo) printf("%ll\n", unsigned_foo) printf("%ld\n", unsigned_foo) printf("%dl\n", unsigned_foo) そして、それらすべては私が持っているものの-123123123代わりにある種の数を印刷しunsigned longます。




11
単一の引数を持つprintf(変換指定子なし)が廃止されたのはなぜですか?
私が読んでいる本でprintfは、単一の引数(変換指定子なし)は非推奨であると書かれています。代用をお勧めします printf("Hello World!"); と puts("Hello World!"); または printf("%s", "Hello World!"); 誰かがなぜprintf("Hello World!");間違っているのか教えてもらえますか?本には、脆弱性が含まれていると書かれています。これらの脆弱性は何ですか?

3
プラットフォームに依存しないsize_tcのフォーマット指定子?
size_tCで型の変数を出力したいのですが、size_tアーキテクチャーごとに異なる変数型にエイリアスされているようです。たとえば、あるマシン(64ビット)では、次のコードは警告をスローしません。 size_t size = 1; printf("the size is %ld", size); しかし、他のマシン(32ビット)では、上記のコードは次の警告メッセージを生成します。 警告:フォーマット '%ld'はタイプ 'long int *'を予期していますが、引数3のタイプは 'size_t *'です。 これはポインタサイズの違いによるものと思われるため、64ビットマシンでsize_tはlong int("%ld")にエイリアスされますが、32ビットマシンでsize_tは別のタイプにエイリアスされます。 専用のフォーマット指定子はありsize_tますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.