C语言 03-第一个C程序代码分析
生活随笔
收集整理的這篇文章主要介紹了
C语言 03-第一个C程序代码分析
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文目錄
- 一、代碼分析
- 二、開(kāi)發(fā)和運(yùn)行C程序的步驟
- 三、總結(jié)
1.#include <stdio.h>
- #include 是C語(yǔ)言的預(yù)處理指令之一,所謂預(yù)處理,就是在編譯之前做的處理,預(yù)處理指令一般以 # 開(kāi)頭。
- #include 指令后面會(huì)跟著一個(gè)文件名,預(yù)處理器發(fā)現(xiàn) #include 指令后,就會(huì)根據(jù)文件名去查找文件,并把這個(gè)文件的內(nèi)容包含到當(dāng)前文件中。被包含文件中的文本將替換源文件中的 #include 指令,就像你把被包含文件中的全部?jī)?nèi)容拷貝到這個(gè) #include 指令所在的位置一樣。
- 如果被包含的文件拓展名為.h,我們稱(chēng)之為"頭文件"(Header File),頭文件可以用來(lái)聲明函數(shù)("函數(shù)"就是面向?qū)ο笾械?#34;方法"),要想使用這些函數(shù),就必須先用 #include 指令包含函數(shù)所在的頭文件。
- #include?指令不僅僅限于.h頭文件,可以包含任何編譯器能識(shí)別的C/C++代碼文件,包括.c,.hpp,.cpp等,甚至.txt,.abc等等都可以。
- 不過(guò)你可能會(huì)疑惑,為什么stdio.h用尖括號(hào)<>,而my.txt用雙引號(hào)"" ?這個(gè)很好區(qū)別,如果是系統(tǒng)自帶的文件,最好用<>;如果是開(kāi)發(fā)人員自己創(chuàng)建的文件,最好用“”。因?yàn)椤啊笔鞘紫葘ふ议_(kāi)發(fā)人員自己創(chuàng)建的文件,如果文件不存在,才會(huì)去尋找系統(tǒng)中的文件。
2.main函數(shù)
- 前面也已經(jīng)提到,C中的函數(shù)就是面向?qū)ο笾械?#34;方法"。C語(yǔ)言是一門(mén)面向過(guò)程的語(yǔ)言,是以過(guò)程為中心的編程思想,就是先分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用函數(shù)就可以了。
- 一個(gè)C程序中一定會(huì)有一個(gè)main函數(shù),也只能有一個(gè)main函數(shù)。main函數(shù)是整個(gè)C程序的入口。main.c的第3行代碼就定義了一個(gè)main函數(shù)。
- main函數(shù)的返回值為int類(lèi)型,接收2個(gè)參數(shù),其實(shí)可以不寫(xiě)參數(shù)。
return 0; } 這里要注意的是:這里的main函數(shù)沒(méi)有寫(xiě)返回值類(lèi)型,并不代表函數(shù)沒(méi)有返回值,而是表示返回值類(lèi)型為int類(lèi)型,void才代表函數(shù)沒(méi)有返回值由于C語(yǔ)言的語(yǔ)法限制不嚴(yán)格,我們還可以進(jìn)一步簡(jiǎn)化main函數(shù): main() {// insert code here...printf("Hello, World!\n"); } 雖然它要求main函數(shù)返回int類(lèi)型的值,但我們可以不返回。
3.stdio.h
- stdio.h?是C語(yǔ)言函數(shù)庫(kù)中的一個(gè)頭文件,里面定義了一些標(biāo)準(zhǔn)輸入輸出函數(shù)。在main.c的第1行代碼中,用#include指令包含了stdio.h文件。
- 這里之所以包含 stdio.h 文件,是因?yàn)樵诘?行中用到了在 stdio.h 內(nèi)部聲明的printf函數(shù),這個(gè)函數(shù)可以向標(biāo)準(zhǔn)輸出設(shè)備(比如顯示器屏幕)輸出數(shù)據(jù),屏幕上輸出的文字就是第7行代碼printf("Hello, World!\n");造成的,雙引號(hào)""內(nèi)的文本為C語(yǔ)言的字符串。
1.編寫(xiě)程序
C語(yǔ)言源文件的擴(kuò)展名為".c",源文件以ASCII碼形式存儲(chǔ),不能直接被計(jì)算機(jī)執(zhí)行,因?yàn)橛?jì)算機(jī)只能識(shí)別二進(jìn)制指令,也就是0和1。2.編譯(VC環(huán)境下)
- 把C的源程序翻譯成計(jì)算機(jī)可以識(shí)別的二進(jìn)制形式的目標(biāo)代碼文件,這個(gè)過(guò)程稱(chēng)為編譯,由C的編譯器完成。
- 在編譯的同時(shí),還對(duì)源程序的語(yǔ)法等進(jìn)行檢查。若出現(xiàn)語(yǔ)法錯(cuò)誤,則編譯失敗。如果編譯成功則生成目標(biāo)文件,目標(biāo)文件名跟源程序文件名一樣,擴(kuò)展名為".obj"。比如,lee.c編譯后生成目標(biāo)文件lee.obj。
- 每個(gè)源文件是單獨(dú)進(jìn)行編譯的,假如一個(gè)項(xiàng)目中有多個(gè).c源文件,編譯成功會(huì)生成多個(gè)對(duì)應(yīng)的.obj目標(biāo)。一般情況下,目標(biāo)文件之間是有關(guān)聯(lián)的,比如 a.obj 可能會(huì)調(diào)用 b.obj 中定義的一個(gè)函數(shù),因此它們都不能夠單獨(dú)被計(jì)算機(jī)執(zhí)行,而且目標(biāo)文件中并不包含程序運(yùn)行所需要的庫(kù)函數(shù)等。
3.鏈接(VC環(huán)境下)
- 將所有有關(guān)聯(lián)的obj目標(biāo)文件,以及系統(tǒng)提供的C庫(kù)函數(shù)等組合在一起生成可執(zhí)行文件的過(guò)程,稱(chēng)為"鏈接"。
- 鏈接生成的可執(zhí)行文件的文件名跟源程序文件同名,擴(kuò)展名為".exe",計(jì)算機(jī)可以直接執(zhí)行。
4.運(yùn)行
* 如果是在Windows環(huán)境下,直接雙擊".exe"文件即可運(yùn)行C語(yǔ)言程序* 由于我們的第一個(gè)C程序,是在Mac OS X系統(tǒng)環(huán)境下用Xcode創(chuàng)建的命令行項(xiàng)目,Mac OS X系統(tǒng)是基于UNIX系統(tǒng)的,因此生成的可執(zhí)行文件的這樣的: ? * 雙擊可以用終端(命令行)打開(kāi): ? 三、總結(jié) 說(shuō)了這么多,總結(jié)一下第一個(gè)C程序的運(yùn)行步驟: 1.在編譯前先執(zhí)行#include指令,拷貝stdio.h的內(nèi)容到源程序中。 2.編譯源程序,生成目標(biāo)文件。 3.鏈接C語(yǔ)言函數(shù)庫(kù),生成可執(zhí)行文件。 4.運(yùn)行可執(zhí)行文件,在屏幕上輸出"Hello, World!"看起來(lái)好像挺多步驟的、挺麻煩的,但是當(dāng)我們點(diǎn)擊Xcode的運(yùn)行按鈕時(shí),Xcode會(huì)自動(dòng)按順序執(zhí)行上面4個(gè)步驟 。轉(zhuǎn)載于:https://www.cnblogs.com/hackerlee/p/3996152.html
總結(jié)
以上是生活随笔為你收集整理的C语言 03-第一个C程序代码分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android高仿微信UI点击头像显示大
- 下一篇: 使用 Visual Studio Onl