學了很久的c語言,很多程式還是只有乙個main.c,而不懂得如何多檔案程式設計。
常見的程式由多個原始檔組成,通常還有一些標頭檔案。原始檔包含函式的定義和外部變數,而標頭檔案包含可以在原始檔之間共享的資訊。
事實上,可以將程式分割成任意數量的原始檔。根據慣例,原始檔的副檔名必須為.c,其中乙個原始檔必須是main.c,作為程式的
起點。分割函式時,把相關的函式和變數分組放到同乙個檔案中。
#include 使得在任意數量的原始檔中
共享乙個巨集定義或型別定義成為可能。它會
通知預處理器開啟指定的檔案,並且把它插入到當前檔案中。
#include //c語言自身庫頭問價
#include 「file.h」 //所有的其他標頭檔案和自己編寫的標頭檔案
兩者區別在於後者會先搜尋當前目錄,然後搜尋系統標頭檔案所在目錄。
所以不能把自己定義的標頭檔案用尖括號括起來,這樣編譯器會直接搜尋系統檔案所在目錄,顯然是找不到標頭檔案的。
#include 「/myfiles/file.h」 //可以幫助定位標頭檔案
通常最好的做法是不要在#include 指令中包含路徑或者驅動器的資訊。
不然當需要移植到其他電腦甚至是其他系統時,編譯會變得很困難。
#include
#include
void func1(); //函式宣告
void func2(); //函式宣告
void func3(); //函式宣告
int main()
//函式實現
void func1()
void func2()
void func3()
可以寫成乙個main.c / stack.c / stack.h
stack.c
#include 「stack.h」
void func1()
void func2()
void func3()
stack.h
void func1();
void func2();
void func3();
main.c
#include
#include
#include 「stack.h」
int main(int argc, char *argv)
其中,stack.h還可以寫成另一種形式
#ifndef stack_h //使用 #ifndef / #endif 來
封閉檔案的內容,這樣可以
保護標頭檔案stack.h
#define stack_h
void func1();
void func2();
void func3();
#endif stack_h
Linux C 之檔案程式設計(3)
讀寫檔案通常是大量的資料 這種大量是相對於底層驅動的系統呼叫所實現的資料操作單位而言 這時,使用庫函式就可以大大減少系統呼叫的次數。這一結果又緣於緩衝區技術。在使用者空間和核心空間,對檔案操作都使用了緩衝區,例如用fwrite寫檔案,都是先將內容寫到使用者空間緩衝區,當使用者空間緩衝區滿或者寫操作結...
linux c程式設計 檔案的讀寫
linux 系統中提供了系統呼叫函式open 和close 用於開啟和關閉乙個存在的檔案 int open const char pathname,int flags int open const char pathname,int flags,mode t mode int open const ...
Linux C程式設計 檔案屬性
寫在前面的話,本文介紹linux系統下ls命令列出的檔案 目錄屬性 第1欄位 檔案屬性字段 檔案屬性字段總共有10個字母組成,第乙個字元代表檔案的型別 表示該檔案是乙個普通檔案。d 表示該檔案是乙個目錄,字母 d 是dirtectory 目錄 的縮寫。l 表示該檔案是乙個鏈結檔案。字母 l 是lin...