」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > C 中「void」的大小是多少?

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

發佈於2024-12-22
瀏覽:138

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 指向的資料類型未知,因此無法確定遞增指標意味著什麼。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3