常見問題
目錄 |
本站的目的是什麼?
我們的目標是為程式設計師提供一份完整的 C 和 C++ 語言及標準程式庫線上參考手冊,也就是提供一份比官方 C 與 C++ 標準更為方便查閱的版本。
主要目標是建立一份優秀的 C 與 C++ 規範。換句話說,對於經驗豐富的程式設計師而言顯而易見的內容應予以省略,或是至少將其與函數、常數或類別的主要描述區分開來。展示各種使用場景的絕佳之處在於每個頁面的「範例」章節。至於基本原理、實作細節以及特定領域的文件,建議放在每個頁面的「註解」章節中。
為什麼這裡的內容僅限於標準 C 與 C++?
簡而言之,我們選擇重質勝於重量。不過,某些 Boost 程式庫 也可以作為收錄的候選對象。儘管它們的教學文件非常出色,但其參考文件往往缺乏靈活性且查閱不便。
哪裡可以找到更多資訊?
請查看以下連結集合 [1] [2],以獲取本站範圍之外的替代連結與資料。
本參考手冊遵循哪一個版本的 C 標準?
C23 是最新發布的 C 標準(而 C2y 正在制定中),因此它是 C 參考手冊的主要焦點。
然而,為了提供更完整的參考資訊,我們也包含了描述先前標準版本(C89、C95、C99、C11、C17)、未來標準版本草案以及 技術規範 的文件。所有與版本相關的文件都應有適當標示。
各個 C 標準版本的相關資訊如下:
- C2y
- 最新的免費工作草案為 n3467 (2025-02-09)。
- C17
- C17 標準已被撤銷,無法再從 ISO 取得,但仍可從 ANSI 購買。
- 最終草案標準 C17 FDIS 可免費取得。
- C11
- C11 標準已被撤銷,無法再從 ISO 取得,但仍可從 ANSI 購買。
- C11 工作草案 N1570 (2011-04-12) 可免費取得,且與最終版 C11 標準僅有極微小差異。
- C99
- C99 標準已被撤銷,無法再從 ISO 取得,但仍可從 ANSI 購買。
- 最終版 C99:TC3 工作草案 N1256 (2007-09-07) 可免費取得,且與包含所有三份技術勘誤表 (Technical Corrigenda) 的最終版 C99 標準僅有極微小差異。
- C95
- C90 修正案 AMD1 已被撤銷,無法再從 ISO 取得,但仍可從 Intertek Inform 購買。
- C89/C90
- C90 標準已被撤銷,無法再從 ISO 取得,但仍可從 Intertek Inform 購買。
- 最終草案(X3J11/90-013 (ANSI 編號) 或 n119 (WG14 編號))並未公開,但最終公開審查草案 X3J11/88-090 (1988-05-13) 可取得,且與最終版 C89 標準僅有極微小差異。
本參考手冊遵循哪一個版本的 C++ 標準?
C++23 是最新發布的 C++ 標準(而 C++26 正在制定中),因此它是本站的主要焦點。
然而,為了提供更完整的參考資訊,我們也包含了描述先前標準版本(C++98、C++03、C++11、C++14、C++17、C++20 與 C++23)的文件,以及未來標準版本(C++26 與 技術規範)的草案文件。所有與版本相關的文件都應有適當標示。
各個 C++ 標準本身的相關資訊如下:
- C++26
- 最新的免費工作草案為 n5001 (2024-12-17)。
- 最新的版本可以在 cplusplus/draft 找到原始碼形式,並在 eel.is/c++draft 瀏覽。
- C++23
- 官方 C++23 標準可以直接從 ISO 購買。
- C++23 的最終草案為 N4950 (2023-05-10)。
- C++20
- C++20 標準已被撤銷,無法再從 ISO 取得。它仍可從諸如 ANSI 的成員組織購買。
- C++20 的最終草案為 N4860 (2020-03-31)。
- 一份 C++20 之後的工作草案 N4868 (2020-10-18) 可供取得,該版本僅包含自 C++20 以來的 N4867 編輯修正。
- C++17
- C++17 標準已被撤銷,無法再從 ISO 取得。它仍可從諸如 ANSI 的成員組織購買。
- C++17 的最終草案為 N4659 (2017-03-21)。
- C++14
- C++14 標準已被撤銷,無法再從 ISO 取得。它仍可透過 ANSI 或其他成員組織購買。
- 一份免費的 C++14 最終草案 (n4140) 可供取得,以及它與標準之間的 差異說明 (n4141),主要包含打字錯誤修正與版本號變更。
- C++11
- C++11 標準已被撤銷,無法再從 ISO 取得。
- 一份免費的 C++11 工作草案 N3337 可供取得。(工作草案與 C++11 標準之間的差異 N3338 非常輕微。)
- C++03
- C++03 標準已被撤銷,無法再從 ISO 取得。
- C++98
- C++98 標準已被撤銷,無法再從 ISO 取得。
為什麼標準與 cppreference 之間存在差異?
Cppreference 由程式設計師維護,旨在為程式設計師提供協助,而非針對 ISO 歷史學家。身為程式設計師,我們關心的是使用 -std=c++20(或是您編譯器對應的參數)時實際會得到什麼。因此,我們的文件旨在對應每一份 C 與 C++ 標準版本「假設的完全正確實作」,並加上適用於該版本的所有後續錯誤修正與說明。若有相關資料,我們傾向使用標準委員會的指引與目前的實作作為該假設實作行為的依據。
是否有適合離線瀏覽的版本?
當然,您可以在這裡取得。
有些應用程式也提供本站內容的離線瀏覽功能。例如基於 docset 的應用程式:Mac 和 iOS 的 Dash、Windows 的 Velocity、Linux 的 Zeal,以及 Android 的 LovelyDocs。
能否讓網站更容易閱讀?
您可能會覺得深色主題比預設的明亮主題更易讀,或是嘗試使用如 DarkReader 的瀏覽器擴充功能。
前面提到的離線 docset 應用程式也提供深色模式與其他選項,但它們不會即時更新。
我可以如何使用本站內容?
本站內容採用 創用 CC 姓名標示-相同方式分享 3.0 未在地化授權條款 (CC-BY-SA) 及 GNU 自由文件授權條款 (GFDL)(無版本號、無固定章節、無封面文字或封底文字)進行授權。這表示您可以以幾乎任何您喜歡的方式使用本站,包括鏡像、複製、翻譯等。我們唯一的請求是請註明來源並提供連結回 cppreference.com,以便使用者知道在哪裡可以取得最新內容。此外,任何修改過的內容都應在相同的授權條款下釋出,以便每個人都能從修改後的版本中受益。
什麼?這是一個維基(Wiki)?我可以修改內容嗎?
當然可以。如果您看到有誤的地方,請協助修正。不過,目前維基的內容僅限於標準 C 與 C++,因此請勿新增非標準內容,例如特定編譯器的擴充功能。此外,請務必與相關標準比對後再進行任何修改。如果您對任何內容不確定,可以在討論頁面上提問。
請注意,由於近期惡意編輯行為,大多數頁面的編輯權限僅限於已確認的使用者。如果您沒有已確認的帳號,可以改在 Talk:Main_Page/suggestions 提出建議,或是聯繫管理員。
我該如何編輯?語法規則是什麼?
本維基使用與 維基百科計畫 相同的 MediaWiki 系統。您可以利用他們的說明頁面來熟悉 MediaWiki 的語法。然而,本維基中的大多數內容都包裹在相當複雜的範本(Templates)中。它們負責大部分的格式化工作,並協助將重複性的內容集中管理,因此當需要修改時,無需進行數十次甚至數百次相同的改動。關於本維基所使用的範本協助,請參閱 Help:Templates。
本維基旨在保持風格一致。請參閱 Help:Manual of style 以獲取風格指南,協助維護維基內一致的風格與格式。
若需要其他編輯資訊,請參閱 Cppreference:EditingHelp。
請注意,為了貢獻內容,您並不需要了解上述複雜的範本或指導方針。撰寫內容本身遠比處理格式困難,因此在撰寫時不必過於在意風格,之後會有人協助修正。
某些高流量的範本為了防止惡意破壞或基於效能考量會被鎖定。若遇到這種情況,請在討論頁面上申請修改。
我想提供幫助,應該從哪裡開始?
太好了!有幾個特殊頁面包含了需要改進的項目:
- 需要範例的頁面(一個不錯的切入點)
- 標記有特定 待辦 (todo) 項目的頁面
- 標記有一般 待辦 (todo) 的頁面
誰在維護這個網站?
cppreference.com 由一群來自世界各地的 C++ 愛好者創建並維護。自 2000 年創立以來,本站完全由社群支持;目前主機成本由部分廣告(請將任何廣告問題回報至 comments@cppreference.com)、捐款,以及銷售滿是雙關語的 C++ 相關周邊商品來支撐。
我該如何聯絡你們?
您可以透過 comments@cppreference.com 與我們聯繫。
若您要回報失效連結,直接在 這裡 回報可能更有效率。