2012-03-02 28 views
1

おそらく基本的な質問は残念ですが、いくつかのコードを理解しようとしていますが、この(%016llx)プレースホルダーの意味を理解できません。`%016llx`で文字列を印刷

私は、%xは16進数のコーディングであることを理解しています。私の知る限りでは、その間の数字は桁数と0パディングです。私は016llシーケンスを解読することはできません。グーグルとは何とかgccに関連した例を示すだけではありませんでした。

私はほとんどゼロ経験のプログラマーだから、助けてくれますか?

答えて

6

description of fprintf() in the C99 Standard%016llx変換仕様は

  1. 必須%文字で構成されていることを教えてくれる
  2. パディング
  3. ため0フラグ「最小フィールド幅」
  4. として16llを「長さ変更子」として
  5. だから変換指定

は、全体では、0で埋められ、16点の位置の最小を占める16進数でunsigned long long intを記述することを意味します。

2

ll(ell-ell)は、long longの略です。あなたはそれが意味し、残りの部分について正しいです:

  1. (スタックから)long long NUMERを取るフォーマットは、左のゼロパディングと16ヶ所の進NUMERとして。
+0

+1のように、一見私は11(one-one)を読みました。 – clabacchio

5

ll引数が適切な符合のlong longintとして解釈されることを示しています。 xは16進数を示し、0は出力がゼロパディングされていることを示し、16は印刷される数値の幅を示します。

関連する問題