c程式的組成
c程式是由乙個或多個.c和.**件組成
.c : c源**檔案
.h :c的標頭檔案
1,.c(c源**檔案)的組成
(1)預處理命令。以"#"開頭的行,在編譯之前預先做的一些工作
a.#include 檔案包含命令
#include
#include "***.h"
上面兩個都是檔案包含命令,其作用是找到相應的檔案,然後把該檔案
的內容在此處展開。不同的是,檔案的搜尋路徑不一樣:
<>在系統標準的標頭檔案路徑(如:/include,/usr/include...)下搜尋
""先在工程目錄下搜尋,然後再到指定路徑下搜尋
gcc hello.c -o hello -i../ //-i用來指定標頭檔案的搜尋路徑
gcc -e hello.c -o hello.i 是預處理完成之後的檔案
b. 巨集定義
#define pi 3.14 //不帶引數的巨集
#define max(a,b) ((a)>(b)?(a):(b)) //帶引數的巨集
巨集僅作"替換"作用
m = max(3+5,6+8)
==>
m = ((3+5)>(6+8)?(3+5):(6+8))
#define debug //僅定義乙個符號debug
c.條件編譯:若條件為真則到endif之間的語句會參與編譯,否則就不參與編譯
#ifdef debug
....
#endif
#if 0
...#endif
#ifndef _***_h_
...#endif
(2)全域性宣告
c語言中任何東西都必須知根知底,拒絕一切來路不明(身份不清)
"宣告":c語言中宣告就是把乙個名字(c識別符號)的屬性進行說明。
比如說該識別符號是變數還是函式呢,如果是變數則又是什麼型別。
一般在定義變數(或函式)時就規定了變數(或函式)的屬性,所以定義也屬於宣告。
c程式的編譯順序是從上到下的,所以我們在呼叫某變數或函式時,必須要先把
它們進行宣告(定義),讓系統知道它的屬性,再呼叫它們。
(3)函式。function,功能。
c語言的函式就是乙個功能模組,是指令序列的集合。
乙個程式可以有多個函式,但有且僅有乙個main函式(主函式),main由執行這個
程式的作業系統來呼叫。程式的執行由main函式開始,那麼main函式執行完了,
你的程式也執行完了。
2 .**件的組成
c語言標頭檔案是乙個介面檔案,該檔案的內容一般為相應的c檔案要匯出的介面部分的內容:
其實就是一些宣告:
函式的宣告
putchar / getchar
printf / scanf
這些函式就宣告在stdio.h這個標頭檔案裡
型別的宣告(構造類的資料型別)
全域性變數的宣告
main.c sum.c sum.h
gcc main.c sum.c -o sum
標頭檔案的寫法舉例
#ifndef _sum_h_ //為了防止標頭檔案重複包含
#define _sum_h_
extern int sum(int a,int b);//宣告外部函式
struct test //宣告結構體型別
;extern int a;//宣告外部全域性變數
#endif
C 程式的組成
函式在被呼叫時,在棧中是以乙個棧幀的形式存在的,棧分為公升棧和降棧,不同架構,棧是不同的.t1堆 程式中的靜態區 t2 程式的組成 在上圖中 堆和棧是直到程式執行是才會存在,是程式執行的基礎 file header 用於告訴作業系統檔案是可執行檔案,和其他一些與執行相關資訊 text section...
C語言程式的組成
include main include 表示匯入系統檔案中,可用 代替,表示自定義文體 std表示標準庫,i表示input,o表示output stdio表示標準輸入輸出庫 h表示標頭檔案 這個開頭必須有 main main表示程式的主函式,乙個程式有且僅有乙個主函式 裡面表示函式的引數 原材料 ...
程式的組成
1 標頭檔案 包含結構宣告和使用這些結構的函式的原型。2 源 檔案 包含與機構有關的函式的 1 函式原型 最好不要在標頭檔案中包含函式的定義 2 使用 define或const定義的符號常量。3 結構宣告 4 類宣告 5 模板函式 5 內聯函式 將結構宣告放在標頭檔案中是可以的,因為它們不建立變數,...