• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

李皇谛>帮助页面>C 语言

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋

C 語言
高級編程語言硬件/軟件通用編程

C語言是面向過程、抽象化的通用程序設計語言。

C語言在二十世紀末到二十一世紀初,因其簡易、高效、不依賴運行環境的特性廣泛用於低級存儲器的編程,儘管到了現在被諸如C++ 、 Python 、 Java等其他高級編程語言,因功能強大、接近人類日常思維等特性淡出各類軟件工程師的視線,但隨着物聯網、微機文化的流行與大環境的倡導,C語言在硬件資源有限的微控制器(MCU)等微機編程上仍舊經久不衰,甚至成為了很多高等院校學習微控制器編程的主要語言。

「編程語言」?

跟學習不同國家的語言一樣,我們需要理解來自外來文化的交流語言,來理解他們的思想、意見和行動;也需要把自己想要讓對方知道的觀點、想法和命令轉化成能被對方所理解的交流語言被他們順利接受。

同理,能讓電腦、流動裝置、微機所理解的語言就是編程語言,編程語言有着固定的語句格式、詞彙及其作用,電腦、手機、微機等設備都有自己的通用中央處理器,讀取內存上的指令並切換與其對應的工作模式,準確執行人們所規定的動作,或者轉化為可被人們讀取或操作的內容。

存儲器是由 海量的二進制可控電容器作為基本框架 堆疊而成的 數碼訊號陣列,模擬信號難以量化、易受干擾等特性都不能構成穩定的存儲結構,否則處理器會在重複讀取時產生不同甚至錯誤的動作。這些數碼訊號與電路連線中的數字開關相連接,一個二進制位代表一個開關,通過讀取這個二進制位以改變電路連線的開關狀態,來改變這一套系統中的電氣功能。

一個位的數碼訊號只有低電平(0)和高電平(1)兩種狀態,想要準確表達更多的狀態,就要通過硬件連接一次性讀取多個邏輯位,隨後改變硬件的電氣連接。假設一次性讀取4個二進制位並對其加以解析,硬件電路就能區分24=16種不同的狀態,最多可以改變一組電氣連接系統中的16種工作模式。

海量的二進制序列為集成電路工作在用戶要求的工作模式提供了可能,但如果把這些二進制序列組成的機器碼直接轉化為普通文本並交給用戶理解的話,就會讓人焦頭爛額。

編程語言按照用戶通俗語言與機器語言之間的距離和位置,分為高級語言匯編語言(又稱「低級語言」或「匯總編程語言」)。匯編語言可直接被系統編程器直接轉換為機器碼,偏向處理器一側,但是文化水平欠佳的用戶難以理解;高級語言需要深刻理解用戶的需求,並將用戶隨口說出的基本語句轉換為可被細化為獨立步驟的匯編語言,對轉換媒介的語言功底或密碼學經驗提出了更大的挑戰。

編譯器解析器可以在可被集成電路控制的機器碼與可被用戶識別並理解的文本之間提供交流的橋樑,前者可以把用戶需要的數據轉化為可被處理器執行的機器碼,後者將及其執行的代碼轉化為可被用戶接受並理解的文本。

$$MOEGIRLPEDIA \ce {<=>[编译][解析]} 4d 4f 45 47 49 52 4c 50 45 44 49 41 $$

隨着各個地區的各個用戶希望計算機處理的事情越來越多,不同語言下的用戶需求如何轉化為可被計算機理解的過程語言是難點也是重點,將用戶按通俗語言提出的核心需求轉化為可被計算機理解並細化的執行語言,就是程式設計師存在的意義。他們最為接近用戶一側,更懂難以被辭典量化解析的晦澀語言、方言、俚語或網絡梗句,懂得如何將幾乎偏離基本語句結構的語言轉化為結構嚴謹、語句清晰的基礎文本,讓計算機對齊加以區分並準確動作。

集成電路和處理器會隨着用戶需求的苛刻而更新迭代,後續推出的通用處理器會增加功能指令、提高寄存器深度、提高處理頻率,正因如此,計算機或者微機才會實現更多的功能更好地為人民服務,但同樣伴隨着硬件成本的提高,如果在功能需求量不大的多數環境下貿然使用通用計算機,只會導致資源浪費。舉個例子,單純用於後台路由或數據服務的電腦不必像能玩遊戲的電腦一樣額外添加獨立顯卡,因為獨立顯卡的圖形渲染對於純數據處理而言完全沒用,能不用就不用。