源程序。(或者叫源代碼、源文件)源程序(sourcecode)是指未編譯的按照一定的程序設計語言規范書寫的文本文件。源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。在程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。C語言源代碼即用C語言編寫的一類可讀的計算機語言指令。
原理:c程序如何從文本文件中讀取數據?比如編程從某一個后綴.txt的文件讀取數據并在終端框中顯示,在頭文件“stdio.h”中有FILE結構類型的聲明,編寫程序時建立指針與文件之間的聯系,一般會設置一個FILE*fp1;的指針指向要打開的文件,然后通過指針對文件進行讀寫。
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:主要工作是將頭文件插入到所寫的代碼中,生成擴展名為“.i”的文件替換原來的擴展名為“.c”的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。
(這里所說的替換并不是指原來的文件被刪除)
2、匯編階段:插入匯編語言程序,將代碼翻譯成匯編語言。
編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤后,編譯器把代碼翻譯成匯編語言,同時將擴展名為“.i”的文件翻譯成擴展名為“.s”的文件。
3、編譯階段:將匯編語言翻譯成機器語言指令,并將指令打包封存成可重定位目標程序的格式,將擴展名為“.s”的文件翻譯成擴展名為“.o”的二進制文件。
4、鏈接階段:在示例代碼中,改代碼文件調用了標準庫中printf函數。
而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為“.o”的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與helloworld文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合并后生成一個可執行目標文件。