C 中所有指標的大小都相同嗎?
問題是 C 中的所有指標是否共用統一的大小。雖然人們經常認為,C 標準對這個問題提供了明確的見解。
C 標準規範
C 標準明確保證:
實際注意事項
實際上,指向類別類型的指標通常保持相同的大小。這是因為編譯器必須在不完全定義 T 的情況下確定 T* 的大小。雖然編譯器在調整指標大小方面具有一定的靈活性,但在現實場景中很少使用。
此外,函數指標、指向資料成員的指標和指向函數成員的指標通常具有相同的大小。這允許在這些指標類型之間進行無縫的重新解釋轉換。
異常
分段架構中出現一個值得注意的異常,其中近指針和遠指針的大小可能不同。這種情況違反了指針大小統一的通常規則。
結論
C 標準闡明了 void* 和 cv 限定的指針具有統一的大小。雖然指向不同類型的指標通常繼承相同的大小,但實際考慮表明,指向類別類型的指標、函數指標和指向資料成員的指標都共享統一的大小。然而,分段架構存在一個例外,近指標和遠指標可能具有不同的大小。
以上是C 中所有指標的大小都相同嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!