C程式的組成

2021-10-07 18:31:38 字數 1765 閱讀 6591

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 內聯函式 將結構宣告放在標頭檔案中是可以的,因為它們不建立變數,...