首頁  >  文章  >  後端開發  >  C 中的「static」關鍵字真的被棄用了嗎?

C 中的「static」關鍵字真的被棄用了嗎?

DDD
DDD原創
2024-11-13 07:23:02833瀏覽

Is the 'static' keyword in C   truly deprecated?

C 中的內部連結和已棄用的「static」關鍵字

C 開發人員長期以來一直在翻譯單元中使用「static」關鍵字來控制符號可見性。然而,這種做法在 n3092 中被棄用,隨後在 n3225 中被刪除。

棄用的理由

棄用「static」旨在阻止其在命名空間範圍內聲明對象,因為未命名的命名空間提供了更好的替代方案。然而,追蹤 C 缺陷的問題揭示了這一變化的微妙原因。

棄用的撤銷

在C 標準核心語言缺陷報告的修訂版94 中,問題(1012. Undeprecating static ) 解釋:

雖然7.3.1.1 [ namespace.unnamed] 聲明不建議使用static關鍵字在命名空間範圍內聲明變量,因為未命名命名空間提供了更好的替代方案,在可預見的將來,該功能不太可能在任何時候被刪除。

' 的持久性static'

此更新有效地逆轉了棄用。 「靜態」仍然是聲明具有內部連結的函數和物件的有效關鍵字。與使用未命名命名空間相比,它的主要優點在於簡潔且無需額外的樣板程式碼。

對 C 和 C 相容性的影響

最初的棄用旨在增強 C 對 C 標準的遵守,因為 C 無法識別未命名的命名空間。然而,撤銷棄用的決定承認將 C 程式編譯為 C 的現實世界的複雜性。

結論

棄用「static」可能是善意的,但將其刪除反映了這樣的認識:未命名的命名空間並不能完全取代「靜態」用於聲明具有內部連結的對象的實用性。因此,開發人員可以繼續放心地使用“靜態”,因為它在 C 標準中的存在不太可能很快消失。

以上是C 中的「static」關鍵字真的被棄用了嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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