ホームページ > バックエンド開発 > C++ > C の「void」のサイズはどれくらいですか?

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

Mary-Kate Olsen
リリース: 2024-11-19 17:25:03
オリジナル
837 人が閲覧しました

What is the Size of

質問: "void" の未定義サイズについて理解します

C プログラミングでは、キーワード "void" は型の欠如を表します。ここで疑問が生じます: "void" のサイズは何ですか?

答え:

型 "void" には C で定義されたサイズがありません。オブジェクトまたはポインターに対して有効な型であるため、それをそのまま使用しようとするとコンパイル エラーが発生します。具体的には、次のステートメント:

void n;
ログイン後にコピー

は、許可されていない void 型の変数を宣言しようとしているため無効です。

拡張: " による割り当てとポインター演算void" ポインタ

void にはサイズがありませんが、ポインタの型として使用できます。ただし、そのようなポインタは、特定のタイプやサイズのデータ​​を指しません。

ステートメント

void *p = malloc(sizeof(void));
ログイン後にコピー

は、「void」にメモリを割り当てようとしているため、コンパイル時エラーが発生します。 "タイプはナンセンスです。関数 malloc には、メモリを割り当てるための有効なデータ型が必要です。

GCC では、sizeof(void) 式は驚くべきことに 1 と評価されます。これは、サイズを「void」に割り当てているように見えるかもしれませんが、単に依存すべきではない実装の詳細。

さらに、「void」ポインターのポインター算術 p は未定義であり、使用すべきではありません。これは、p が指すデータのタイプが不明であり、ポインターのインクリメントが何を意味するかを判断できないためです。

以上がC の「void」のサイズはどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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