首頁 >後端開發 >C++ >C 中「void」的大小是多少?

C 中「void」的大小是多少?

Susan Sarandon
Susan Sarandon原創
2024-11-19 02:09:02642瀏覽

What Is the Size of `void` in C?

深入探究 Void 之謎:大小及超越

代表空型的 void 概念經常激發程式設計師的好奇心。一個基本問題出現了:空洞的大小是多少?

理解空洞的本質

嘗試確定空洞的大小使我們得到一個關鍵的認識:空洞沒有尺寸。它缺乏像其他資料類型那樣佔用空間的內在特徵。這種固有的空性阻止了它被宣告為變數。

考慮這個例子:

void n; // Compilation error

GCC 的意外行為

令人驚訝的是,GNU C 編譯器(GCC) 使用sizeize (void) 時返回大小1。這似乎與虛空沒有大小的觀念相矛盾。然而,這種行為並不是 void 本質的真實反映,而是 GCC 特有的怪癖。

Void 指標和記憶體分配

具有特殊類型的 Void 指標void * 通常用於儲存位址,無論其基礎資料類型為何。當使用malloc(sizeof(void))分配記憶體時,沒有分配實際的記憶體。相反,返回一個空指標。

遞增空指標

範例中的指標 p 引用空位址。遞增 p (p ) 通常會依其指向的資料類型的大小遞增其值。然而,由於 p 是一個 void 指針,它的增量操作是未定義的,並且在不同的編譯器中有所不同。

以上是C 中「void」的大小是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn