C語言簡介
C 語言是一種通用的高級語言,最初是由丹尼斯·里奇在貝爾實驗室為開發 UNIX 操作系統而設計的。C 語言最開始是於 1972 年在 DEC PDP-11 計算機上被首次實現。
在 1978 年,布萊恩·柯林漢(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一個公開可用的描述,現在被稱為 K&R 標准。
UNIX 操作系統,C編譯器,和幾乎所有的 UNIX 應用程序都是用 C 語言編寫的。由於各種原因,C 語言現在已經成為一種廣泛使用的專業語言。
C語言具有如下特點:
-
易於學習
-
結構化語言
-
它產生高效率的程序
-
它可以處理底層的活動
-
它可以在多種計算機平台上編譯
關於 C
-
C 語言是為了編寫 UNIX 操作系統而被發明的。
-
C 語言是以 B 語言為基礎的,B 語言大概是在 1970 年被引進的。
-
C 語言標准是於 1988 年由美國國家標准協會(ANSI,全稱 American National Standard Institute)制定的。
-
截至 1973 年,UNIX 操作系統完全使用 C 語言編寫。
-
目前,C 語言是最廣泛使用的系統程序設計語言。
-
大多數先進的軟件都是使用 C 語言實現的。
-
當今最流行的 Linux 操作系統和 RDBMS(Relational Database Management System:關系數據庫管理系統) MySQL 都是使用 C 語言編寫的。
為什么要使用 C?
C 語言最初是用於系統開發工作,特別是組成操作系統的程序。由於 C 語言所產生的代碼運行速度與匯編語言編寫的代碼運行速度幾乎一樣,所以采用 C 語言作為系統開發語言。下面列舉幾個使用 C 的實例:
-
操作系統
-
語言編譯器
-
匯編器
-
文本編輯器
-
打印機
-
網絡驅動器
-
現代程序
-
數據庫
-
語言解釋器
-
實體工具
C 程序
一個 C 語言程序,可以是 3 行,也可以是數百萬行,它可以寫在一個或多個擴展名為 ".c" 的文本文件中,例如,hello.c。您可以使用 "vi"、"vim" 或任何其他文本編輯器來編寫您的 C 語言程序。
本教程假定您已經知道如何編輯一個文本文件,以及如何在程序文件中編寫源代碼。
C11
C11(也被稱為C1X)指ISO標准ISO/IEC 9899:2011,是當前最新的C語言標准。在它之前的C語言標准為C99。
C語言新特性
-
對齊處理(Alignment)的標准化(包括_Alignas標志符,alignof運算符,aligned_alloc函數以及<stdalign.h>頭文件)。
-
_Noreturn 函數標記,類似於 gcc 的 __attribute__((noreturn))。
-
_Generic 關鍵字。
-
多線程(Multithreading)支持,包括:
_Thread_local存儲類型標識符,<threads.h>頭文件,里面包含了線程的創建和管理函數。
_Atomic類型修飾符和<stdatomic.h>頭文件。 -
增強的Unicode的支持。基於C Unicode技術報告ISO/IEC TR 19769:2004,增強了對Unicode的支持。包括為UTF-16/UTF-32編碼增加了char16_t和char32_t數據類型,提供了包含unicode字符串轉換函數的頭文件<uchar.h>。
-
刪除了 gets() 函數,使用一個新的更安全的函數gets_s()替代。
-
增加了邊界檢查函數接口,定義了新的安全的函數,例如 fopen_s(),strcat_s() 等等。
-
增加了更多浮點處理宏(宏)。
-
匿名結構體/聯合體支持。這個在gcc早已存在,C11將其引入標准。
-
靜態斷言(Static assertions),_Static_assert(),在解釋 #if 和 #error 之后被處理。
-
新的 fopen() 模式,("…x")。類似 POSIX 中的 O_CREAT|O_EXCL,在文件鎖中比較常用。
-
新增 quick_exit() 函數作為第三種終止程序的方式。當 exit()失敗時可以做最少的清理工作。