緒論:大一上半學(xué)期C語言課程結(jié)束,經(jīng)過五個(gè)月的學(xué)習(xí),對(duì)C語言和編程有了一個(gè)淺顯的認(rèn)識(shí)。
一.一個(gè)最簡(jiǎn)單的C程序
首先要有一個(gè)寫代碼的文本文件,并且后綴為.c(C語言)或者.cpp(C++)。
#include <stdio.h>? ? ? ? ? ? ? ? ? ? /*編譯預(yù)處理指令*/? ?
int main(){?? ????????????????????????????????/*主函數(shù)*/
printf("Hello world!");? ? ? ? ? ? ? ? ? /*打印語句*/
}
編譯預(yù)處理指令和主函數(shù)是每段程序所必有的,但格式可能有多種變化。
代碼一般寫在main函數(shù)里,如? ?printf("Hello world!");? ?意味在屏幕上顯示Hello world!。并且此為命令語句,規(guī)定每條命令語句要在其后跟上分號(hào)(代碼里所有符號(hào)都為英文符號(hào))。
一段代碼經(jīng)過編譯,鏈接可生成后綴為.exe的可執(zhí)行文件。
編譯階段:由編譯器將源代碼轉(zhuǎn)換為匯編語言?(assembly language),再將之匯編成跟CPU相關(guān)的二進(jìn)制碼(多種 CPU 的機(jī)器指令都是互不一樣的),生成各個(gè)目標(biāo)文件 (.obj文件),計(jì)算機(jī)只能識(shí)別機(jī)器語言(即0,1代碼)。
gcc test1.c --save-temps (保存編譯過程中產(chǎn)生的臨時(shí)文件)
鏈接:將編譯生成的目標(biāo)文件與被調(diào)用函數(shù)的目標(biāo)模塊連接,生成exe可執(zhí)行文件。
(匯編語言是二進(jìn)制指令的文本形式,與指令是一一對(duì)應(yīng)的關(guān)系。比如,加法指令00000011寫成匯編語言就是 ADD。只要還原成二進(jìn)制,匯編語言就可以被 CPU 直接執(zhí)行,所以它是最底層的低級(jí)語言。)
常量表達(dá)式是在編譯時(shí)求值,而不是在運(yùn)行時(shí)求值