Win32 C 語言程序編譯多個文件和在多個文件中聲明外部變量

先看一下程序的運行結果;Win32程序,沒窗口;只有WinMain入口;

工程如下;main.c使用了a.c、b.c、d.c中的函數;

main.c;

#include <windows.h>
#include "a.h" 
#include "b.h"

int A; /* 定義外部變量 */
int power(int);    /* 函數聲明 */ 

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	/* TODO: Place code here.*/
 	char szBuffer[100];
	wsprintf(szBuffer, "較大的數字是:%d",myMax(30,87));
    MessageBox(NULL,szBuffer,TEXT("調用a.c"),0);
    wsprintf(szBuffer, "兩數之和是:%d",myAdd(33,44));
    MessageBox(NULL,szBuffer,TEXT("調用b.c"),0);
    A=7;
	wsprintf(szBuffer, "乘法結果是:%d",power(3));
    MessageBox(NULL,szBuffer,TEXT("調用d.c"),0);

	return 0;
}

a.c;

int myMax(int a,int b){
    if(a>b)
    	return a;
    return b;
}

b.c;

int myAdd(int a, int b){
    return a+b;
}

a.h;

int myMax(int ,int );

b.h;

int myAdd(int , int );

main.c作如下包含,

    #include "a.h" 
    #include "b.h"

即可調用a.c和b.c中的函數;

 

使用extern關鍵字來聲明變量爲外部變量。具體說就是在其中一個c文件中定義一個全局變量key,然後在另一個要使用key這個變量的c文件中使用extern關鍵字聲明一次,說明這個變量爲外部變量,是在其他的c文件中定義的全局變量。
例如在01.c文件中定義變量abc,在02.c文件中聲明abc變量爲外部變量,這樣這兩個文件中就能共享這個變量abc了。 

d.c;

extern A;/*聲明A爲一個已定義的外部變量*/
int power(int n){
    int i,y=1;
    for(i=1;i<=n;i++){
        y*=A;
    }
    return y;
}

變量A在main.c中賦值,然後調用d.c中的power()函數;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章