⑴ C語言包含文件的格式
..(兩個點)表示上一級目錄
相應的
.(一個點)表示當前目錄
⑵ C語言文件包含相關問題
兩個 .c 文件沒有包含關系的話,編譯器當然是分別編譯兩個 .c 文件。這里把編譯器生成的文件稱為 .obj 文件,.obj 文件中不需要有所有用到的函數的定義
鏈接的時候需要告訴鏈接器兩個 .obj 文件之間有引用關系,這樣鏈接器就會把兩個 .obj 文件組合起來,形成完整的程序,此時所有用到的函數都必須有定義,否則就會有鏈接期錯誤
至於要編譯哪些文件,哪些文件需要鏈接在一起,必須告訴 編譯器/鏈接器,可以是手動(通過命令行)告訴,也可以利用配置文件,或 IDE 自動生成……
⑶ C語言中文件包含功能怎麼用
文件包含是指一個C語言源程序中將另一個C語言源程序包含進來,通過include預處理指令實現。
一般形式:
#include」被包含文件名」
或#include<被包含文件名>
2. 作用:將指定文件包含在當前文件中,插入至文件包含指令相應位置處。使用文件包 含指令,可以減少程序設計人員的重復勞動,提高程序開發效率。
3. 說明:
(1)被包含的文件一般指定為頭文件(*.h),也可為C程序等文件。
(2)一個include指令只能指定一個被包含文件,如果要包含n個文件,則要用到n條include指令。
(3)不能包含OBJ文件。文件包含是在編譯前進行處理,不是在連接時進行處理。
(4)當文件名用雙引號括起來時,系統先在當前目錄中尋找包含的文件,若找不到,再在系統指定的標准方式檢索其它目錄。而用尖括弧時,系統直接按指定的標准方式檢索。
一般系統提供的頭文件,用尖括弧。自定義的文件,用雙引號。
(5)被包含文件與當前文件,在預編譯後變成同一個文件,而非兩個文件。
(6)文件包含可以嵌套,但必須按順序包含。
⑷ C語言文件包含問題
不需要考慮庫文件被重復包含的問題,這些標准文件內部都用宏和條件編譯的方式做了防護,不會出現被重復包含的問題
反倒是你自定義的聲明/宏會被重復包含
一般的做法是使用專門的宏作為標記,先判斷該宏在之前是否已被定義,如該宏已被定義則通過條件編譯忽略本頭文件剩下的內容,這樣就可以避免重復定義/聲明的問題
形如:
#ifndef__MYSTRING_H__
#define__MYSTRING_H__
#defineTrue(1)
...
voidfunc1(int);
voidfunc2(int);
...
#endif
⑸ C語言文件包含相關問題
這個函數:int t()
在dfq.c中有定義,在mainc()中包含了dfq.c,#include預處理指令將其後指定的文件原地展開。此時相當於main.c中又定義了一次 int t(),C語言規定標識只能定義一次(但可以聲明多次).
解決這個問題的方法有多種,通常的做法是:
建一個頭文件:dfq.h,在其中聲明函數int t();大致像這樣
#ifndef DFQ_H
#define DFQ_H
int t();
#endif
然後在dfq.c中的開始處:
#include "dfq.h"
在main.c中的開始處:
#include "dfq.h"
簡單解釋一下dfq.h中的#ifndef預處理指令的意思:主要是為了防止多次重復的文件包含。當第1次包含時DFQ_H沒有定義,此時包含文件內容,第2次以上包含時,因有了DFQ_H的定義,因此之後的內容將被忽略。
⑹ 什麼是C語言文件包含處理
文件包含處理是指在一個源文件中,通過文件包含命令將另一個源文件的內容全部包含在此文件中。在源文件編譯時,連同被包含進來的文件一同編譯,生成目標,目標文件。