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()
{
}