C/C++頭文件的編寫


  在C語言的學習過程中,我們一般把所有的代碼寫在一個文件中。隨着自身水平的提高,我們發現代碼越寫越長,代碼行數越來越多,把一個工程的所有代碼寫在一個文件中讓人看起開非常吃力。於是我們開始想把代碼中的函數歸類,同一類放在同一個文件中當中,那么如何實現將一個工程中的代碼放到不同文件中呢?這就需要寫頭文件了。下面的簡單列子將讓你學會如何寫頭文件。你也可以點擊這里下載源代碼自己研究。

  假設我們需要定義一些與棧有關的函數,主程序需要調用這些函數。

  首先,我們在同一文件夾中新建3個文件(要包含不同的自定義頭文件需要加上路徑,為了使用方便就在同一個文件夾下定義),名稱分別為:

  main.cpp  包含主程序

  stack.cpp  定義與棧有關的函數

  stack.h   對stack.cpp里面的函數、結構體變量等進行聲明

  

  

  然后在stack.h中添加如下代碼:

#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

#include "stdio.h"
#include "stack.cpp" ///表名函數原型在,stack.cpp中,VC6.0好像不用加這句 #endif // HEADER_H_INCLUDED

  

  在stack.cpp中包含stack.h:

#include "stack.h"

  同樣在main.cpp中也包含stack.h,並添加主函數:

#include "stack.h"

int main()
{
    return 0;
}

 

  這幾步做完之后,基本框架也就完成了,下面我們開始寫我們的庫函數,例如我們要定義:

  void stack_push(pSTACK &S);

  pSTACK stack_pop(pSTACK &S);

  bool stack_empty(pSTACK &S);

3個函數,以及一個結構體,那么這函數的原型和結構體應該寫在stack.cpp中,函數聲明和結構體聲明寫在stack.h中。

 

stack.cpp:

#include "stack.h"

typedef struct Stack
{
    struct Stack *next;
    unsigned int stack_size;
};


void stack_push(pSTACK &S)
{

    /**此處省略若干代碼**/

    printf("這個函數來自stack.cpp\t");

    printf("進棧\n");
}

pSTACK stack_pop(pSTACK &S)
{
    pSTACK s=NULL;

    /**此處省略若干代碼**/

    printf("這個函數來自stack.cpp\t");
    printf("出棧\n");
    return s;
}

bool stack_empty(pSTACK &S)
{

    /**此處省略若干代碼**/

    return true;
}

 

 

 

 

stack.h:

#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

#include "stdio.h"

/***結構體聲明***/
typedef struct Stack STACK,*pSTACK;


/***函數聲明***/
void stack_push(pSTACK &S);
pSTACK stack_pop(pSTACK &S);
bool stack_empty(pSTACK &S);


#include "stack.cpp"            ///表名函數原型在,stack.cpp中,VC6.0好像不用加這句

#endif // HEADER_H_INCLUDED

 

  在main函數中調用自定義函數。

main.cpp:

 

#include "stack.h"

int main()
{
    pSTACK S=NULL;
    stack_push(S);
    stack_pop(S);
    return 0;
}

 

 

 

輸出:

 

 

  這樣一個簡單的多文件框架就實現了,點擊這里下載源代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM