首頁 >後端開發 >C++ >C : std:: 中的 C 頭檔與全域命名空間 - 哪一種方法比較好?

C : std:: 中的 C 頭檔與全域命名空間 - 哪一種方法比較好?

Susan Sarandon
Susan Sarandon原創
2024-11-23 07:27:10460瀏覽

C Headers in C  :  std:: vs. Global Namespace - Which Approach is Better?

在C 中導航C 頭檔:std:: 與全域命名空間

在C 中使用C 頭檔時,會出現一個關於呼叫函數的首選方法:使用std:: 命名空間或全域命名空間。雖然 C 透過更改標頭名稱(例如,將 stdio.h 更改為 cstdio)來支援包含 C 標頭,但仍需要考慮哪種方法更合適。

C 11 標準在D 節中解決了此問題.5 [depr.c.headers],聲明每個C 標頭(名稱格式為name.h)的行為就像相應的cname 標頭聲明的每個名稱都放置在全域命名空間中一樣。但是,這些名稱是否首先在 std 命名空間中宣告或定義,然後注入到全域命名空間中仍然未指定。

例如,;標頭確實在 std 命名空間內提供聲明和定義,而 則提供了定義。 header 肯定會在全域命名空間中提供它們。

基於此信息,建議包含 cname 標頭並使用 std 命名空間中的聲明和定義。這確保了與未來修訂版的兼容性,並遵循標準中概述的首選方法:

#include <cstdio>

int main() {
    std::printf("Hello world\n");
}

雖然在技術上可以接受使用;帶有來自全局命名空間的聲明和定義的標頭,這種做法已被棄用,並且將來可能會被刪除。

以上是C : std:: 中的 C 頭檔與全域命名空間 - 哪一種方法比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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