日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

一個(gè)c語(yǔ)言程序是由什么組成的

一個(gè)c語(yǔ)言程序是由什么組成的

一個(gè)c語(yǔ)言程序是由什么組成的


C語(yǔ)言源程序是由:數(shù)據(jù)類型、常量與變量、數(shù)組、指針、字符串、文件輸入或者輸出、運(yùn)算構(gòu)成 。C語(yǔ)言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable-scope)以及遞歸功能的過(guò)程式語(yǔ)言 。
具體介紹:
1、數(shù)據(jù)類型:C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型 。
2、常量與變量:常量其值不可改變,符號(hào)常量名通常用大寫 。變量是以某標(biāo)識(shí)符為名字,其值可以改變的量 。
3、數(shù)組:如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明 。字符串也是一種數(shù)組 。它們以ASCII的NULL作為數(shù)組的結(jié)束 。要特別注意的是,方括內(nèi)的索引值是從0算起的 。
【一個(gè)c語(yǔ)言程序是由什么組成的】4、指針:指針不僅可以是變量的地址,還可以是數(shù)組、數(shù)組元素、函數(shù)的地址 。通過(guò)指針作為形式參數(shù)可以在函數(shù)的調(diào)用過(guò)程得到一個(gè)以上的返回值 , 不同于return(z)這樣的僅能得到一個(gè)返回值 。
5、字符串:C語(yǔ)言的字符串其實(shí)就是以0字符結(jié)尾的char型數(shù)組,使用字符型并不需要引用庫(kù),但是使用字符串就需要C標(biāo)準(zhǔn)庫(kù)里面的一些用于對(duì)字符串進(jìn)行操作的函數(shù) 。它們不同于字符數(shù)組 。
6、文件輸入/輸出:在C語(yǔ)言中,輸入和輸出是經(jīng)由標(biāo)準(zhǔn)庫(kù)中的一組函數(shù)來(lái)實(shí)現(xiàn)的 。在ANSI C中,這些函數(shù)被定義在頭文件;中 。
一個(gè)c語(yǔ)言程序是由一個(gè)或多個(gè)函數(shù)組成一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成 。一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù) 。
C程序是由什么組成的A C 程序由一個(gè)以上的函數(shù)組成,而且必須有 main 函數(shù) 。此外 , C 程序一般還有一些預(yù)處理指令 。例如 #include 指令 。當(dāng)然并不是必須要有 #include 指令 。函數(shù)由函數(shù)頭和函數(shù)體組成 。函數(shù)頭由返回值、函數(shù)名以及參數(shù)列表(可以是void)組成 。函數(shù)體從 { 開始 , 以 } 結(jié)束 。函數(shù)體里可以有一系列的語(yǔ)句,每個(gè)語(yǔ)句以分號(hào)(;)結(jié)束 。例如: 預(yù)處理指令 ——〉 #include
c語(yǔ)言源程序文件經(jīng)過(guò)連接后生成文件的擴(kuò)展名是什么選擇C.”.exe“
解析如下:
文件編輯的時(shí)候源碼是CPP擴(kuò)展名,C++頭文件是.H擴(kuò)展名 。編譯源程序文件轉(zhuǎn)換成.obj擴(kuò)展名的目標(biāo)文件 。鏈接將一個(gè)或多個(gè)目標(biāo)文件與程序用到的庫(kù)文件鏈拉起來(lái),形成一個(gè)可以在操作系統(tǒng)直接運(yùn)行的執(zhí)行程序.exe 。
也就是整個(gè)過(guò)程分為:預(yù)編譯 , 對(duì)源代碼的宏進(jìn)行替換,生成中間文件(文本 , 默認(rèn)不保留)》》翻譯為匯編代碼(文本,默認(rèn)不保留)》》由匯編器生成二進(jìn)制文件(.obj)》》連接為可執(zhí)行文件(.exe) 。
一個(gè)c語(yǔ)言程序是由什么組成的


擴(kuò)展資料
一、編譯
目標(biāo)代碼生成是編譯的最后一個(gè)階段 。目標(biāo)代碼生成器把語(yǔ)法分析后或優(yōu)化后的中間代碼變換成目標(biāo)代碼 。目標(biāo)代碼有三種形式:
① 可以立即執(zhí)行的機(jī)器語(yǔ)言代碼,所有地址都重定位;
② 待裝配的機(jī)器語(yǔ)言模塊,當(dāng)需要執(zhí)行時(shí),由連接裝入程序把它們和某些運(yùn)行程序連接起來(lái),轉(zhuǎn)換成能執(zhí)行的機(jī)器語(yǔ)言代碼;
③ 匯編語(yǔ)言代碼,須經(jīng)過(guò)匯編程序匯編后,成為可執(zhí)行的機(jī)器語(yǔ)言代碼 。
目標(biāo)代碼生成階段應(yīng)考慮直接影響到目標(biāo)代碼速度的三個(gè)問題:一是如何生成較短的目標(biāo)代碼;二是如何充分利用計(jì)算機(jī)中的寄存器,減少目標(biāo)代碼訪問存儲(chǔ)單元的次數(shù);三是如何充分利用計(jì)算機(jī)指令系統(tǒng)的特點(diǎn) , 以提高目標(biāo)代碼的質(zhì)量 。
二、高級(jí)程序設(shè)計(jì)語(yǔ)言C
程序的編譯
編譯是指將編輯好的源文件翻譯成二進(jìn)制目標(biāo)代碼的過(guò)程 。編譯過(guò)程是由編譯程序(編譯器)完成的 。不同操作系統(tǒng)下的各種編譯器的使用命令不完全相同,使用時(shí)應(yīng)注意計(jì)算機(jī)環(huán)境 。編譯時(shí),編譯器首先要對(duì)源程序中的每一個(gè)語(yǔ)句檢查語(yǔ)法錯(cuò)誤 , 當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí),就在屏幕上顯示錯(cuò)誤的位置和錯(cuò)誤類型的信息 。
此時(shí),要再次調(diào)用編輯器進(jìn)行查錯(cuò)修改 。然后,再進(jìn)行編譯,直至排除所有語(yǔ)法和語(yǔ)義錯(cuò)誤 。正確的源程序文件經(jīng)過(guò)編譯后在磁盤上生成目標(biāo)文件(后綴名為.obj的文件) 。程序的連接
編譯后產(chǎn)生的目標(biāo)文件是可重定位的程序模塊 , 不能直接運(yùn)行 。連接就是把目標(biāo)文件和其他必需的目標(biāo)程序模塊(這些目標(biāo)程序模塊是分別編譯而生成的目標(biāo)文件)以及系統(tǒng)提供的標(biāo)準(zhǔn)庫(kù)函數(shù)連接在一起,生成可以運(yùn)行的可執(zhí)行文件的過(guò)程 。連接過(guò)程使用C語(yǔ)言提供的連接程序(連接器)完成,生成的可執(zhí)行文件(后綴名為.exe的文件)存到磁盤中 。
程序的運(yùn)行
程序經(jīng)過(guò)連接生成可執(zhí)行文件后,就可以在操作系統(tǒng)控制下運(yùn)行.若執(zhí)行程序后達(dá)到預(yù)期目的,則C程序的開發(fā)工作到此完成.否則,要進(jìn)一步檢查修改源程序 , 重復(fù)編輯-編譯-連接-運(yùn)行的過(guò)程,直到取得預(yù)期結(jié)果為止 。

    推薦閱讀