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