命名空間
變體
動作

C 語言歷史

出自 cppreference.com
< c‎ | 語言

目錄

[編輯] 早期 C

  • 1969 年:B 語言誕生,基於 BCPL,旨在取代 PDP-7 組合語言,作為 Unix 的系統程式語言
  • 新增運算子 ++--、複合指定運算,維持與 BCPL 一樣的無型別語言特性
  • 1971 年:將 B 語言移植至 PDP-11 時,產生了 NB("new B")
  • 型別(intchar、陣列與指標)、陣列轉指標轉換、編譯為機器碼
  • 1972 年:語言更名為 C
  • struct、運算子 &&||、預處理器、可移植 I/O
  • 1973 年:以 C 語言重寫 Unix
  • unsignedlongunion、列舉(enumeration)、增強型別安全性
  • 1978 年:《C 程式設計語言》第一版

[編輯] 標準 C

  • 1983 年:ANSI 成立 X3J11 委員會
  • 1988 年:《C 程式設計語言》第二版
  • 1989 年:C89,ANSI C 標準發布
  1. 將現有的實作慣例標準化
  2. 新特性:volatileenumsignedvoid、本地化(locales)
  3. 來自 C++:const、函式原型(function prototypes)
  • 1990 年:C90,ANSI C 標準被採納為 ISO/IEC 9899:1990
  • 1994 年:技術勘誤 1 (ISO/IEC 9899:1990/Cor.1:1994)
  • 1995 年:C95 (ISO/IEC 9899:1990/Amd.1:1995) (線上商店)
  1. 大幅擴展寬字元與多位元組字元支援(<wctype.h><wchar.h>、串流 I/O 的新增與變更等)
  2. 雙字母詞(digraphs)、<iso646.h>
  • 1996 年:技術勘誤 2 (ISO/IEC 9899:1990/Cor.2:1996)
  • 1999 年:C99 (ISO/IEC 9899:1999)
  1. 新特性:boollong long<stdint.h><inttypes.h>restrict、複合實字(compound literals)、變長陣列(VLA)、彈性陣列成員、指定初始化器、<fenv.h>、可變參數巨集、複數、__func__、十六進位浮點格式(%a)、lconv 中的貨幣格式化、isblank、窄字串與寬字串實字串接、列舉中的尾隨逗號、函式型巨集中的空白參數、STDC_* 雜注(pragmas)、va_copytmpnam 的空指標回傳、setvbuf 中的空指標、printf 中的 hhll 長度限定符、snprintf_Exit<tgmath.h>、類 POSIX 的 strftime 限定符
  2. 來自 C++:inline、混合宣告與程式碼、for 迴圈初始化子句中的宣告、// 註解、原始碼中的通用字元名稱(universal character names)
  3. 移除隱含函式宣告與隱含的 int
  • 2001 年:技術勘誤 1 (ISO/IEC 9899:1999/Cor.1:2001)
  1. 執行緒感知記憶體模型、<stdatomic.h><threads.h>、型別泛型函式、alignas/alignofnoreturnstatic_assert、可分析性擴充、複數與虛數型別擴充、匿名結構與聯集、獨佔式檔案開啟模式、quick_exit
  2. 移除 gets
  3. 來自邊界檢查介面技術報告:邊界檢查介面、
  4. 來自 Unicode 技術報告:char16_tchar32_t<uchar.h>
  • 2012 年:技術勘誤 1 (ISO/IEC 9899:2011/Cor 1:2012) (ISO 商店)
  1. 提供對 C11 的變更(主要針對附錄 F),涵蓋 IEC 60559:2011 的所有基本要求與部分建議(C11 建構於 IEC 60559:1989 之上)
  1. 提供對 C11 的變更,以支援 IEC 60559:2011 中關於十進位浮點算術的所有要求與基本建議。此文件取代了 ISO/IEC TR 24732:2009。
  1. 提供對 C11 的變更,以支援 IEC 60559:2011 中關於擴充浮點格式與交換格式(算術與非算術)的建議。
  1. 提供對 C11 的變更,以支援 IEC 60559:2011 推薦的所有數學運算,包括 π 單位三角函式、平方根倒數、複利等。
  1. 提供對 C11 的變更,以支援 IEC 60559:2011 推薦的所有補充屬性(評估模型、例外處理、可重現性等)。
主文章:C17
C17 修正的缺失報告(54 項)
  • 2023 年 C23 (ISO/IEC 9899:2024)。C23 是目前的 C 語言標準版本。
主文章:C23
C23 修正的缺失報告(?項)

[編輯] 未來發展

  1. 未獲得 DR 狀態的問題清單:(N2556 2020-08-02)
主文章:C29 ?
下一個主要的 C 語言標準修訂版

[編輯] 參見

C++ 文件 關於 C++ 歷史

[編輯] 外部連結

1.  C 語言的發展,作者:Dennis M. Ritchie
2.  C99 標準的基本原理
English Deutsch 日本語 中文(简体) 中文(繁體)