標頭檔案包含方式,main函式的引數解析

audience_fzn發表於2018-08-03

條件編譯:

在編譯一個程式的時候我們如果要將一條(一組)語句編譯或放棄是很方便的因為我們有條件編譯

比如除錯性的程式碼,刪除可惜,保留又礙事,我們就可以選擇條件編譯

常見的條件編譯語句:

1.

#if  常量表示式
//……
#endif

//常量表示式由處理器求值,因為變數在執行事才會建立,而這些條件編譯在預處理階段

 

2.多分支的條件編譯

#if 常量表示式
//……
#elif 常量表示式
//……
#else
//……
#endif

 

3.判斷是否被定義

#if defined(symbol)
#ifdef symbol
#if !defined(symbol)
#ifdef symbol

 

4.巢狀指令

#if defined(OS_UNIX)
#ifdef OPTION1
//……
#endif
#ifdef OPTION2
//……
#endif

#endif

 

標頭檔案被包含的方式:

  • #include<stdio.h>:一般用於庫檔案,直接去庫目錄下查詢

              Windows:C:\program Files(x86)\Microsoft Visual Studio 9.0\vc\include

              Linux:\user\include

  • #include"filename":一般用於自定義的檔案,先去當前使用者的工程目錄下去找,找不到再去庫目錄下去找。

注:" "也可用於庫檔案,但是查詢的效率比較低,也不易區分庫檔案和本地檔案

 

問:標頭檔案中的 ifndef/define/endif 幹什麼用?

答:防止標頭檔案的重複引入

 

其他預處理指令

1.#error

2.#program

#program warning (disable:4996)

3.line

……

main()函式的引數解析

1.main()函式的原型:

int main(int argc,char *argv[],char *envp[])

2.引數分析

           1)argc:整型變數,標識命令列引數的個數

           2)argv:字元指標陣列,指向一個字串,這個字串就是命令列引數的每一個引數

           3)envp:字元指標陣列,陣列的每一個元素是一個指向一個環境變數的字元指標。

 

 

相關文章