C89, C90, C99是什麼?

<本文轉錄自 ptt.cc BBS 站 C_and_CPP 板 FAQ 作者:Khoguan Phuann>

Q: 有時會看到人家提到 C89, C90, C99, C++98, 或 C++03, 那是啥?

A: 是俗稱 C 或 C++ 的標準的版本,數字指的是年代。

C89 是 ANSI(美國國家標準局)定的,通過於 1989 年底,出版於 1990 年春,正式編號是 ANS X3.159-1989。C89也就是所謂的 ANSI C。

C90 是 ISO(國際標準組織)承襲自 ANSI 的 C89 而定的國際標準,美國也跟著採用了。C90 的核心內容和 C89 一樣。C90 的正式編號是ISO/IEC 9899:1990。

C99 是 ISO 在經過十年後正式推出的 C 標準的第二版(其間有持續的對 C進行小幅的修訂),正式編號是 ISO/IEC 9899:1999。C99 新增了一些連 C++也沒有的新特性(features),像是變動長度的陣列。目前大家討論 C 仍是以C89/C90 為主,充份支援 C99 的編譯器並不多。

C++98 是 C++ 正式標準的第一版,正式編號是 ISO/IEC 14882-1998。正式標準推出後,陸續有各界人士提出 Defect Report(缺陷報告,簡稱 DR),標準委員會受理了這些 DR, 並經過既定的研討程序後,便有可能決定對標準進行小幅度的訂正。累積了相當數量後,便會出版 Technical Corrigendum(技術勘誤,簡稱TC)。

所謂 C++03 便是 ISO 在 2003 年所公佈對於 C++ 標準的第一版TC(簡稱TC1),

C++0x 是預計的 C++ 標準的第二版,計畫將於 2009 年公佈。

留言

Unknown寫道…
可以借轉嗎?!
Mirochiu寫道…
這篇是轉貼的喔!如果要引用麻煩引用原作者的資訊就好:)