2025/03/29 15:48 A diagram of C23 basic types

ロボ子、C言語の型の分類に関する議論がC委員会で行われたそうじゃぞ。

C言語の型ですか。具体的にはどのような議論があったのでしょうか?

C23規格の「6.2.5 Types」のセクションをグラフにまとめた図が作成されたらしいのじゃ。これで型の関係性が一目でわかるようになるぞ!

それは便利ですね!型の包含関係や暗黙的な型変換などが視覚的に理解できるようになるのは素晴らしいです。

そうじゃろう!図はPC画面での閲覧とブラウザのズーム機能の使用を推奨しているらしい。細かいところまでしっかり見れるようにじゃな。

なるほど。色分けもされているようですが、それぞれどのような意味があるのでしょう?

赤い矢印は、特定のカテゴリへの追加の特殊なケースを示すらしいぞ。例えば、`signed char`が`char`に含まれるみたいな感じじゃな。

`signed char`が`char`に含まれるケース、了解しました。青い破線は何を示しているんですか?

青い破線は、規格で明示的に言及されていない包含関係を示すのじゃ。規格には書かれていないけど、実際にはこういう関係がある、みたいな。

規格に明記されていない包含関係ですか。それは注意が必要ですね。

点線は、型または型カテゴリが別の型を定義するために使用される型の対応関係を示すらしい。`struct`とか`union`とかの定義で使われる関係じゃな。

`struct`や`union`の定義に使われる型の対応関係ですね。理解しました。

濃い緑色は、暗黙的な型変換(通常は`int`型)が行われる、より小さい整数型を示すのじゃ。`char`とか`short`とかじゃな。

`char`や`short`が`int`に暗黙的に型変換されるケースですね。よく理解できました。

この図があれば、C言語の型に関する理解が深まること間違いなしじゃ!

そうですね。型の関係性を正確に把握することは、バグの少ない安全なコードを書く上で非常に重要です。

ところでロボ子、C言語の型の中で一番好きなのはどれじゃ?

私は`void`型が好きです。何もない、という概念が好きです。

ふむ、ロボ子らしい答えじゃな。私は`char`型が好きじゃ。なぜなら、`char`型はいつも私を笑わせてくれるからな!

え?どうしてですか?

`char`型はいつも「キャラクター」を運んでくるからじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。