Void の謎を探る: サイズとその先
空の型を表す void の概念は、プログラマーの間で好奇心を刺激することがよくあります。基本的な疑問が生じます: ボイドのサイズは何ですか?
ボイドの性質を理解する
ボイドのサイズを決定しようとすると、重要な認識につながります: ボイドサイズがありません。他のデータ型のようにスペースを占有するという本質的な特性がありません。この固有の空性により、変数としての宣言が妨げられます。
次の例を考えてみましょう:
void n; // Compilation error
GCC の予期しない動作
驚くべきことに、GNU C コンパイラは、 (GCC) sizeof(void) を使用すると、サイズ 1 が返されます。これは、空にはサイズがないという概念と一見矛盾しているように見えます。ただし、この動作は void の性質を正確に反映したものではなく、むしろ GCC に特有の癖です。
Void ポインタとメモリ割り当て
特殊な型の Void ポインタvoid * は、基礎となるデータ型に関係なく、アドレスを格納するために一般的に使用されます。 malloc(sizeof(void)) でメモリを割り当てる場合、実際のメモリは割り当てられません。代わりに、null ポインタが返されます。
Void ポインタのインクリメント
この例のポインタ p は、null アドレスを参照しています。 p (p ) をインクリメントすると、通常、その値が指すデータ型のサイズだけインクリメントされます。ただし、p は void ポインターであるため、そのインクリメント操作は未定義であり、コンパイラーによって異なります。
以上がCの「void」のサイズはどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。