include的作用


#include發生在預處理階段,整個編譯鏈接過程,#include是最簡單的了,沒有之一。就是在include的位置直接把文件原原本本完完整整一字不落的包含進來,下面舉一個極端點的例子:

//file a.c

#include <stdio.h>
int d = 3;
#include "b"

//a.c end

//file b

main(){
printf("d = %d\n",d);

}

//b end

所以include后,源程序變為

//file a.c
#include <stdio.h>
int d = 3;
main(){
printf("d = %d\n",d);

}

 

 

 

2.關於c語言中#include 路徑查找問題

1. 包含命令中的文件名可以用雙引號括起來,也可以用尖括號括起來。例如以下寫法都是允許的:
    #include"stdio.h"
    #include<math.h>
    但是這兩種形式是有區別的:使用尖括號表示在包含文件目錄中去查找(包含目錄是由用戶在設置環境時    設置的),而不在源文件目錄去查找;
    使用雙引號則表示首先在當前的源文件目錄中查找,若未找到才到包含目錄中去查找。用戶編程時可根據    自己文件所在的目錄來選擇某一種命令形式。
2. 一個include命令只能指定一個被包含文件,若有多個文件要包含,則需用多個include命令。
3. 文件包含允許嵌套,即在一個被包含的文件中又可以包含另一個文件。

 

1.include<頭文件名>和include"頭文件名"

如:include<stdio.h>和include"stdio.h"

前者(使用<>),來引用stdio.h文件,是首先檢索標准路徑,看看這些文件夾下是否有該頭文件;如果沒有,也不會檢索當前文件所在路徑,並將報錯。

后者(使用""),來引用stdio.h文件,是首先檢索文件的當前路徑;如果沒有,再檢索標准路徑,看看這些文件夾下是否有該頭文件。

2.linux下,上述標准路徑有:/usr/include,/usr/local/include。

3.<sys/頭文件名>。如<sys/io.h>,<net/ethernet.h>等。其中,前面的字符串(如sys,net)表示標准路徑下的文件夾名,后面的字符串(如io.h,ethernet.h),表示在linux標准路徑下的各文件夾下的頭文件名,如sys文件夾下的io.h文件,即我們可以在/usr/include/sys目錄下發現io.h文件。

linux博大精深,需要慢慢積累。

4.如果想在指定路徑下檢索頭文件,可加選項-I。如我的/home/Desktop目錄下有個頭文件local1.h,在編譯包含local1.h的test.c文件時,可用:gcc test.c -o test -I /root/Desktop。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM