C 語言入門

C 是一種通用的命令式計算機程式語言,支援結構化程式設計,詞法變數範圍和遞迴,而靜態型別系統可防止許多意外操作。通過設計,C 提供了有效對映到典型機器指令的結構,因此它已經在以前用組合語言編寫的應用程式(包括作業系統)以及從超級計算機到嵌入式系統的各種計算機應用軟體中得到了長期使用。。

儘管該語言具有低階功能,但該語言旨在鼓勵跨平臺程式設計。可以為各種各樣的計算機平臺和作業系統編譯符合標準且可移植編寫的 C 程式,其原始碼幾乎沒有變化。從嵌入式微控制器到超級計算機,這種語言已經廣泛應用於各種平臺。

C 最初由 Dennis Ritchie 於 1969 年至 1973 年間在貝爾實驗室開發,用於重新實現 Unix 作業系統。它已成為有史以來使用最廣泛的程式語言之一,來自不同供應商的 C 編譯器可用於大多數現有的計算機體系結構和作業系統。

通用編譯器

編譯 C 程式的過程在編譯器和作業系統之間有所不同。大多數作業系統都沒有編譯器,因此你必須安裝一個。一些常見的編譯器選擇是:

以下文件應該為你提供有關如何開始使用一些最常見的編譯器的良好概述:

編譯器 C 版支援

請注意,編譯器對標準 C 具有不同級別的支援,許多仍然不完全支援 C99。例如,自 2015 年釋出以來,MSVC 支援 C99 的大部分但仍然有一些重要的例外支援語言本身(例如預處理似乎不符合)和 C 庫(例如 <tgmath.h>),它們也不一定需要文件他們的依賴於實現的選擇維基百科有一個表格, 顯示一些流行編譯器提供的支援。

一些編譯器(特別是 GCC)提供或繼續提供編譯器擴充套件,這些擴充套件實現了編譯器生產者認為必要,有用或相信可能成為未來 C 版本的一部分的附加功能,但目前不是任何 C 標準的一部分。由於這些擴充套件是特定於編譯器的,因此可以認為它們不是交叉相容的,並且編譯器開發人員可以在以後的編譯器版本中刪除或更改它通常可以通過編譯器標誌來控制這種擴充套件的使用。

此外,許多開發人員的編譯器僅支援他們所針對的環境或平臺強加的特定 C 版本。

如果選擇編譯器,建議選擇對目標環境允許的最新 C 版本具有最佳支援的編譯器。

程式碼風格(這裡是偏離主題):

因為 C 中的空格是無關緊要的(也就是說,它不會影響程式碼的操作),程式設計師經常使用空格來使程式碼更容易閱讀和理解,這稱為程式碼風格。它是編寫原始碼時使用的一組規則和準則。它涵蓋的問題包括如何縮排行,是否應使用空格或製表符,如何放置大括號,如何在操作符和括號周圍使用空格,如何命名變數等等。

程式碼風格不在標準範圍內,主要是基於意見(不同的人發現不同的風格更容易閱讀),因此,它通常被認為是關於 SO 的偏離主題。在一個人自己的程式碼中,關於樣式的最重要的建議是,一致性是最重要的 - 選擇或製作一種風格並堅持下去。只需解釋一下,通常使用的各種命名樣式通常由程式設計師選擇,而不是建立自己的樣式。

一些常見的縮排樣式有:K&R 風格,Allman 風格,GNU 風格等。其中一些樣式有不同的變體。例如,Allman 被用作常規的 Allman 或流行的變體 Allman-8。有關一些流行風格的資訊可以在維基百科上找到。這些樣式名稱取自作者或組織經常釋出的標準,供許多參與其程式碼的人使用,這樣每個人都可以在知道樣式時輕鬆閱讀程式碼,例如構成部分程式碼的 GNU 格式指南 。在 GNU 編碼標準文件。

一些常見的命名約定是:UpperCamelCase,lowerCamelCase,lower_case_with_underscore,ALL_CAPS 等。這些樣式以各種方式組合以用於不同的物件和型別(例如,巨集通常使用 ALL_CAPS 樣式)

通常建議在 SO 文件中使用 K&R 樣式,而不鼓勵使用更為深奧的樣式,例如 Pico。

C 標準未涵蓋的庫和 API(因此在這裡偏離主題):