2011年12月29日
常常會在對源代碼進行如何組織時犯難:
1)頭文件的內容應寫些什麼?
2)函數的具體實現應放在哪一個文件裏?是否與頭文件放在一處?
3)自定義的頭文件(.h)與定義函數(.c)是什麼關係函數
注意:此時你須要有必定的編譯原理的基礎。
--------------------------------------------------------------------------------
====> 1)頭文件裏應寫入的內容:xxx.h
1)預處理塊 :即一些宏的定義相關的#define \#ifndef \#ifdef
2)函數和類結構【聲明】
3)頭文件開頭處的版權和版本聲明io
// 版權和版本聲明見示例 1-1,此處省略。
#ifndef GRAPHICS_H // 防止 graphics.h 被重複引用
#define GRAPHICS_H
#include <math.h> // 引用標準庫的頭文件
…
#include 「myheader.h」 // 引用非標準庫的頭文件
…
void Function1(…); // 全局函數聲明
…
class Box // 類結構聲明
{
…
};
#endif編譯
====> 2)函數的實現應單獨放在一個文件裏-------咱們稱爲定義文件 xxx.c
1) 定義文件開頭處的版權和版本聲明
2) 對一些頭文件的引用-----------可能引用標準的頭文件,或是自定的頭文件(這裏所引用頭文件的要點是:只要你能完成些功能便可,無論你是什麼手段)
3) 程序的實現體(包括數據和代碼)------
// 版權和版本聲明見示例 1-1,此處省略。
#include 「graphics.h」 // 引用頭文件
…
// 全局函數的實現體
void Function1(…)
{
…
}class
====> 3) 頭文件與函數定義沒有直接的關係,(咱們理解成好像各自爲政的樣子----------各做各的就行,函數定義最後是生成相應的庫文件,即其也只編譯到.o文件便可)
1)須要明白頭文件的功能:
1)最主要是完成編譯階段的功能。 -I來完成編譯原理
2)庫文件--------當須要進行連接時,纔會來查找對應函數的實現。 此時由 -l -L來共同完成基礎
============================>說白了,在咱們須要編寫一個較大的可執行代碼主要分爲:
1)編寫頭文件
2)編寫函數定義文件
3)編寫可執行文件===即咱們的main函數相關的代碼。原理
編寫時: 引用
1)、2) =====》共同完庫文件的工做
1)、3) =====》共同完成main文件的工做
----------------------------------------------->>>>>>>>>>>>>>>>再共同完成可執行文件
程序