學習Linux C程式設計之預處理與結構體

2021-08-09 21:55:17 字數 1052 閱讀 2256

1、巨集定義的位置及作用域? 

巨集定義必須寫在函式之外,其作用域為巨集定義命令起到源程式結束,也可以用「#undef」命令終止。

2、檔案包含命令「」與<>的區別 

使用<>表示在包含檔案包含目錄中去查詢(包含目錄是由使用者在設定環境時設定的),而不在源檔案目錄去查詢。 

使用「」表示首先在當前的源檔案目錄中查詢,若未找到才到包含目錄中查詢。

3、什麼是結構體 

將一些相關聯的資料打包成乙個整體,方便使用,這種多個資料組合起來的乙個整體其表現形式就是乙個結構體

結構體的一般定義形式為:

struct 結構體名;

struct是關鍵字,是結構體型別的標誌。

例如,定義乙個car

struct car ;

定義結構體變數:

struct car car;//直接定義變數

//單獨定義結構體變數

struct car car

4、結構體與陣列比較 

都是由多個元素組成; 

各個元素在記憶體中的儲存空間是連續的; 

陣列中各個元素的資料型別相同,而結構體中的各個元素的資料型別可以不相同。

5、結構體與函式

如果結構體作為函式引數,只是將實參結構體所有成員的值對應地賦值給了形參結構體的所有成員

修改函式內部結構體的成員不會影響外面的實參結構體

與函式的對比:

1> 巨集定義不涉及儲存空間的分配、引數型別匹配、引數傳遞、返回值問題。

2> 函式呼叫在程式執行時執行,而巨集替換只在編譯預處理階段進行。所以帶引數的巨集比函式具有更高的執行效率。

6、#define和typedef的區別 

#define在c語言中只是為了定義常量 

typedef是作為了增加可讀性而為識別符號另起的新名稱

Linux C預處理命令

無引數巨集定義一般形式為 define 標識字串 例 使用無引數巨集計算圓的面積 include stdafx.h define p 3.1415 2 2 int tmain int argc,tchar argv 有引數的巨集類似於有引數的函式,其定義的一般形式為 define 識別符號 形象表 ...

Linux C 預處理命令

1 巨集定義 定義 c語言標準中允許程式用乙個識別符號來表示乙個字串,稱為巨集。在編譯預處理時,將程式中所有的巨集名用相應的字串來替換,這個過程稱為巨集替換。注 a 巨集定義是由源程式中的巨集定義命令完成的。巨集代替是由預處理程式自動完成的。b 巨集定義和其他編譯處理命令不是以分號結尾的。c 巨集定...

Linux C 預處理命令

c語言標準允許在程式中用乙個識別符號來表示乙個字串,成為巨集。識別符號為巨集名 在編譯預處理時,將程式中所有的巨集名用相應的字串來替換,這個過程稱為巨集替換,巨集分為兩種 無引數的巨集和有引數的巨集。1.無引數的巨集 無引數巨集定義的一般形式為 define 識別符號字串 例如 2.有引數的巨集定義...