溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言中include的使用方法

發布時間:2020-06-16 09:09:37 來源:億速云 閱讀:2941 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關c語言中include的使用方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1、#include 命令介紹

#include 命令是預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;

可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。

2、插入頭文件的內容

#include 命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:

#include <文件名>
#include "文件名"

如果需要包含標準庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:

#include <math.h>               // 一些數學函數的原型,以及相關的類型和宏

如果需要包含針對程序所開發的源文件,則應該使用第二種格式。采用 #include 命令所插入的文件,通常文件擴展名是 .h,文件包括函數原型、宏定義和類型定義。

只要使用 #include 命令,這些定義就可被任何源文件使用。如下例所示:

#include "myproject.h"         // 用在當前項目中的函數原型、類型定義和宏

你可以在 #include 命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的 #include 命令。

例 1 展示了這樣的 #include 命令。

【例1】在 #include 命令中的宏

#ifdef        _DEBUG_
  #define       MY_HEADER       "myProject_dbg.h"
#else
  #define       MY_HEADER       "myProject.h"
#endif
#include        MY_HEADER

當上述程序代碼進入預處理時,如果 DEBUG 宏已被定義,那么預處理器會插入 myProject_dbg.h 的內容;如果還沒定義,則插入 myProject.h 的內容。

3、預處理器如何找到頭文件

由給定的 C 語言實現版本決定 #include 命令所指定文件的搜索路徑。同時,也由實現版本決定文件名是否區分大小寫。對于命令中使用尖括號指定的文件(),預處理器通常會在特定的系統路徑下搜索,例如,在 Unix 系統中,會搜索路徑 /usr/local/include 與 /usr/include。

對于命令中用雙引號指定的文件("文件名"),預處理器通常首先在當前目錄下尋找,也就是包含該程序其他源文件的目錄。如果在當前目錄下沒有找到,那么預處理器也會搜索系統的 include 路徑。文件名中可以包含路徑。但如果文件名中包含了路徑,則預處理器只會到該目錄下尋找。

你也可以通過使用編譯器命令行選項,或在環境變量(該變量通常稱為 INCLUDE)中加入搜索路徑,為 #include 命令指定自己的搜索路徑。具體的做法請參考采用的編譯器的說明文檔。

4、嵌套的 #include 命令

#include 命令可以嵌套使用;也就是說,通過 #include 命令插入的源文件本身也可以包含另一個 #include 命令。預處理器最多允許 15 層的嵌套包含。

因為頭文件有時候會包含另一個頭文件,很容易發生相同的一個文件被多次包含的情況。例如,假設文件 myProject.h 中包含如下代碼:

#include <stdio.h>

如果源文件包含下面的 #include 命令,就會兩次包含 stdio.h,一次是直接包含,另一次是間接包含:

#include <stdio.h>
#include "myProject.h"

然而,可以采用條件式編譯的命令,方便地避免多次包含相同的文件。例 2 使用了這個技巧。

【例2】避免多次包含

#ifndef INCFILE_H_
#define INCFILE_H_
/* ...實際的頭文件incfile.h的內容寫在這里... */
#endif  /* INCFILE_H_ */

第一次出現包含 incfile.h 的命令時,INCFILE_H_ 宏是沒有定義的。預處理器因此插入 #ifndef 和 #endif 之間的內容,這段內容包含了對 INCFILE_H_ 宏的定義。嵌入 incfile.h 文件之后,#ifndef 條件就會為 false,預處理器會忽略 #ifndef 和 #endif 之間的內容。

關于c語言中include的使用方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女