Cの「void」のサイズはどれくらいですか?

Susan Sarandon
リリース: 2024-11-19 02:09:02
オリジナル
615 人が閲覧しました

What Is the Size of `void` in C?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート