1. 程式人生 > >徹底搞明白win32程式設計 .h標頭檔案和.cpp原始檔關係

徹底搞明白win32程式設計 .h標頭檔案和.cpp原始檔關係

一.想把專案的全域性引數都放在一個檔案裡,好方便對初始值修改。

步驟:
1.新建一個.h標頭檔案,只宣告引數為全域性變數(注意是宣告!!!)。
這裡寫圖片描述

2.一定要extern,這才是宣告全域性變數 而且 一定不能賦初值

extern int a;
  • 根據C++標準的規定,一個變數宣告必須同時滿足兩個條件,否則就是定義:
    (1)宣告必須使用extern關鍵字;
    (2)不能給變數賦初值;
  • 標頭檔案請不要定義任何變數

3.新建一個.cpp檔案,包含該標頭檔案,定義變數(可賦初值)。
這裡寫圖片描述

int a=10;

把宣告該變數的標頭檔案setting_parameter.h包含進去
這裡寫圖片描述

我這裡為什麼#include它變成了註釋,是因為vs 2013有一個stdafx.h標頭檔案,讓你把所有你自己要用的標頭檔案 放在stdafx.h裡。
這裡寫圖片描述
這裡寫圖片描述
這樣你有多個cpp檔案要使用定義的引數時,就不用在每一個cpp裡包含setting_parameter.h檔案了。

特別是還有可能會有多個頭檔案要包含,那樣就需要在每一個cpp包含每一個頭檔案。

而放在stdafx.h裡,只需要在每個cpp裡包含stdafx.h一次就行了。

如下:
這裡寫圖片描述

二.想把專案的函式都放在一個檔案裡,好方便對函式修改。

步驟:
1.新建一個.h標頭檔案,只宣告函式(注意是宣告!!!)。
這裡寫圖片描述

void
jump(int x,int y);

2.新建一個.cpp檔案,包含該標頭檔案,完整實現函式
這裡寫圖片描述

void jump(int x,int y)
{
    .........
}

3.注意,在實現函式的時候,可能會用到庫函式和自己定義的引數,這個時候,應該把標頭檔案包含在stdafx.h裡,然後直接包含stdafx即可。
這裡寫圖片描述
這裡寫圖片描述
4.這時,你可能會想在main函式裡包含functions.cpp,好呼叫裡面的函式,其實是不用的。
應該在main函式裡包含functions.h,但是main裡面已經包含了stdafx.h,所以不用再做啥了,可以直接運行了。