[解決済み] uint8_tとuint16_tのフォーマット指定子が同じ(%u)なのはなぜですか?[重複]です。
2022-02-13 13:48:22
質問内容
で検索した結果が大量にあるため、かなり関係のない質問しか見つかりませんでした。
printf()
.
なぜ
uint8_t
は独自のフォーマット文字列を指定しないが、他の型は指定できるのか?
私の理解では
printf()
変数引数リストをパースできるようにするには、供給されたパラメータの長さを知っている必要があります。
以来
uint8_t
と
uint16_t
は同じ書式指定子を使用します。
%u
は、どのように
printf()
は、何バイト処理すればよいかを知っているのでしょうか?それとも、何らかの方法で
uint16_t
を指定した場合
uint8_t
?
もしかしたら、私は明らかな何かを見逃しているかもしれません。
どのように解決するのですか?
printf()
は変量関数です。そのオプションの引数(そしてその引数のみ)は、デフォルトの引数プロモーション( 6.5.2.2. p6 )に従って昇格されます。
整数を要求しているので、この場合は整数のプロモーションが適用され、指定された型は次のようにプロモートされます。
int
. (
unsigned int
なぜならCだからです )
を使用する場合
"%u"
をprintf()の中に入れて、その中に
uint16_t
変数に変換し、その関数はそれを
int
に、そして
unsigned int
( %u で要求されたから) そしてそれを印刷します。
関連
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] 配列のすべてのメンバーを同じ値で初期化するには?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] longをフォーマットするprintfの引数は何ですか?
-
[解決済み] printfにおけるdoubleの正しい書式指定子
-
[解決済み】boolのprintfフォーマット指定子とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】初期化がキャストなしで整数からポインタを作成 - C言語
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】警告:組み込み関数'printf'の非互換な暗黙の宣言(デフォルトで有効]
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】MPI通信でMPI_Bcastを使用する場合
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。