先看一下程序的運行結果;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()函數;