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