ホームページ >バックエンド開発 >C++ >`sizeof(void)` は C または C の void 型のサイズを示しますか?

`sizeof(void)` は C または C の void 型のサイズを示しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 20:05:271050ブラウズ

Does `sizeof(void)` tell us the size of the void type in C or C  ?

とらえどころのない void のサイズ

質問:

C または C で void 型のサイズを決定できますか?次のコードを考えてみましょう:

拡張子: GCC で sizeof(void) が 1 を返した場合、p が最初に保持されていた場合、ポインター p は p の後に 0x2346 にインクリメントされますか? 0x2345?

答え:

void 型には基本的にサイズが不足しているため、式 sizeof(void) が無意味になり、コンパイル エラーが発生します。 C では、これは厳しく禁止されています。

予期せぬ発見:

驚くべきことに、GNU C でコンパイルすると、 sizeof(void) は 1 を返します。ただし、この動作は制限されています。 GNU C に準拠しており、C やその他では観察されません実装.

影響:

GNU C では予期しない戻り値があるにもかかわらず、void はサイズのない型のままであることに注意することが重要です。この例の p などの void へのポインターは本物のポインターであり、他のポインターと同様にインクリメントできます。拡張機能の質問のインクリメント操作は、p が次に使用可能なメモリ アドレスを指すようにして、期待どおりに動作します。

以上が`sizeof(void)` は C または C の void 型のサイズを示しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。