緒論:大一上半學(xué)期C語言課程結(jié)束,經(jīng)過五個(gè)月的學(xué)習(xí)印荔,對C語言和編程有了一個(gè)淺顯的認(rèn)識恶复。
一.一個(gè)最簡單的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ī)定每條命令語句要在其后跟上分號(代碼里所有符號都為英文符號)亏镰。
一段代碼經(jīng)過編譯扯旷,鏈接可生成后綴為.exe的可執(zhí)行文件。
編譯階段:由編譯器將源代碼轉(zhuǎn)換為匯編語言?(assembly language)索抓,再將之匯編成跟CPU相關(guān)的二進(jìn)制碼(多種 CPU 的機(jī)器指令都是互不一樣的)钧忽,生成各個(gè)目標(biāo)文件 (.obj文件)某抓,計(jì)算機(jī)只能識別機(jī)器語言(即0,1代碼)惰瓜。
gcc test1.c --save-temps (保存編譯過程中產(chǎn)生的臨時(shí)文件)
鏈接:將編譯生成的目標(biāo)文件與被調(diào)用函數(shù)的目標(biāo)模塊連接,生成exe可執(zhí)行文件汉矿。
(匯編語言是二進(jìn)制指令的文本形式崎坊,與指令是一一對應(yīng)的關(guān)系。比如洲拇,加法指令00000011寫成匯編語言就是 ADD奈揍。只要還原成二進(jìn)制,匯編語言就可以被 CPU 直接執(zhí)行赋续,所以它是最底層的低級語言男翰。)
常量表達(dá)式是在編譯時(shí)求值,而不是在運(yùn)行時(shí)求值