1. 程式人生 > >C語言標頭檔案作用及寫法

C語言標頭檔案作用及寫法

標頭檔案幾個好處:


1,標頭檔案可以定義所用的函式列表,方便查閱你可以呼叫的函式;
2,標頭檔案可以定義很多巨集定義,就是一些全域性靜態變數的定義,在這樣的情況下,只要修改標頭檔案的內容,程式

就可以做相應的修改,不用親自跑到繁瑣的程式碼內去搜索。
3,標頭檔案只是宣告,不佔記憶體空間,要知道其執行過程,要看你標頭檔案所申明的函式是在哪個.c檔案裡定義的,

才知道。
4,他並不是C自帶的,可以不用。
5,呼叫了標頭檔案,就等於賦予了呼叫某些函式的許可權,如果你要算一個數的N次方,就要呼叫Pow()函式,而這個函式是定義在math.c裡面的,要用這個函式,就必需呼叫math.h這個標頭檔案。

標頭檔案寫法:

#include  
... 
//------------------------------- 
#ifndef MY_POINT 
#define MY_POINT 
class Class1 





class Class2 


... 
#endif 
在要使用類定義的檔案中加入 
#include "標頭檔案名.h "

一般來說,標頭檔案裡多數是放的函式定義或函式體。 
此外,還有: 
#ifndef **** 
#define **** 
…… 
#endif 

之類的語句,用於控制#define 與 #endif之間的內容不被重複定義或插入。 
#include 語句起的只是一個插入作用。 
也就是說,#include 的檔案裡的內容可以隨便寫。 
編譯器使用#include 的檔案裡的內容來插入到#include 所在位置。 
所以,你說的“標頭檔案”沒有固定格式。 

如要使用其它標頭檔案中的函式,可以直接在你的標頭檔案中引用。 

初學C語言,個人建議你使用C++Builder 6去練習和理解,當然,這要求你有一定的英語水平.在很多情況下會自動的幫你加好標頭檔案,你可以觀察它自動生成的檔案,程式碼,以進一步學習。

example:

我截了一小段


#ifndef   __MATH_H
#define   __MATH_H

#if !defined( __DEFS_H )
#include <_defs.h>
#endif

#define HUGE_VAL     _huge_dble
extern double _Cdecl _huge_dble;
#define _LHUGE_VAL    _huge_ldble
extern long double _Cdecl _huge_ldble;

#ifdef __cplusplus
extern "C" {
#endif
double   _Cdecl acos   (double __x);
double   _Cdecl asin   (double __x);
double   _Cdecl atan   (double __x);
double   _Cdecl atan2 (double __y, double __x);
double   _Cdecl ceil   (double __x);
double   _Cdecl cos    (double __x);
double   _Cdecl cosh   (double __x);
double   _Cdecl exp    (double __x);
double   _Cdecl fabs   (double __x);
double   _Cdecl __fabs__   (double __x);          
double   _Cdecl floor (double __x);
double   _Cdecl fmod   (double __x, double __y);
double   _Cdecl frexp (double __x, int *__exponent);
double   _Cdecl ldexp (double __x, int __exponent);
double   _Cdecl log    (double __x);
double   _Cdecl log10 (double __x);
double   _Cdecl modf   (double __x, double *__ipart);
double   _Cdecl pow    (double __x, double __y);
double   _Cdecl sin    (double __x);
double   _Cdecl sinh   (double __x);
double   _Cdecl sqrt   (double __x);
double   _Cdecl tan    (double __x);
double   _Cdecl tanh   (double __x);

long double _Cdecl acosl   (long double __x);
long double _Cdecl asinl   (long double __x);
long double _Cdecl atan2l (long double __x, long double __y);
long double _Cdecl atanl   (long double __x);
long double _Cdecl ceill   (long double __x);
long double _Cdecl coshl   (long double __x);
long double _Cdecl cosl    (long double __x);
long double _Cdecl expl    (long double __x);
long double _Cdecl fabsl   (long double __x);
long double _Cdecl floorl (long double __x);
long double _Cdecl fmodl   (long double __x, long double __y);
long double _Cdecl frexpl (long double __x, int *__exponent);
long double _Cdecl ldexpl (long double __x, int __exponent);
long double _Cdecl log10l (long double __x);
long double _Cdecl logl    (long double __x);
long double _Cdecl modfl   (long double __x, long double *__ipart);
long double _Cdecl powl    (long double __x, long double __y);
long double _Cdecl sinhl   (long double __x);
long double _Cdecl sinl    (long double __x);
long double _Cdecl sqrtl   (long double __x);
long double _Cdecl tanhl   (long double __x);
long double _Cdecl tanl    (long double __x);

typedef enum
{
     DOMAIN = 1,    
     SING,          
     OVERFLOW,      
     UNDERFLOW,     
     TLOSS,         
     PLOSS,         
     STACKFAULT     
}    _mexcep;

#ifdef __cplusplus
}
#endif

1)所有C++的原始檔均必須包含一個規範的檔案頭,檔案頭包含了該檔案的名稱、功能概述、作者、版權和版本歷史資訊等內容。 

 
像這樣具體的格式,最好是例子,標準的(每行前具體要空幾格等)。

(2)對於是自定義的標頭檔案: 
首先要寫一個頭檔案出來,比如說"hello.h",內容如下: 

#ifndef _hello_h_ 
#define _hello_h_ 

#include  
using namespace std; //呼叫基本輸入輸出庫 

#define SIZE 1024 //定義大小 
#define LEN 100 //定義長度 

class hello 

public: 
//以下為定義的類 
}; 

#endif 

然後是應用程式檔案,比如叫"hello.cpp".你說的那些東西寫在最前面,不用空格,規範的寫法是用TAB鍵開頭.例: 
 
//還需要其他資訊你自己添.百度這個框不支援TAB鍵,只好用註釋標明瞭... 
#include  
int main()