2012-05-10 55 views
0

我想使用MPLAB X IDE(ide for PIC development)在C中創建庫。如何使用MPLAB X IDE在庫項目中製作全局變量

我的圖書館ABCLib有這樣一個簡單的源文件:

文件abc.c

void abcTest(int n){ 
    // I want store n as global variable 
} 

要在MyProject的使用這個庫我要創建abc.h MyProject的頭文件夾中:

文件abc.h

#ifndef _ABC_H 
#define _ABC_H 

void abcTest(int n); 

#endif; 

文件在MyProject.C(主文件)

#include "abc.h" 

void main(void) { 
    abcTest(10); 
} 

現在,我想存儲n爲全局變量,所以,要abcTest()的調用後,我可以取回無論我想n的值。

我正在開發一個圖書館,打算在我的所有項目中重複使用它。

回答

1

您需要在所有要使用其全局值的文件中將變量聲明爲外部變量。

實施例:

文件abc.c

extern int global_a; 
void abcTest(int n){ 
    global_a+=n; 
} 

文件abc.h

#ifndef _ABC_H 
#define _ABC_H 

void abcTest(int n); 

#endif; 

文件在MyProject.C(主文件)

#include "abc.h" 
int global_a = 0; // always initialize global variables 

void main(void) { 
    abcTest(10); 
} 

Regards

0

編譯MyProject.c後,abc.h文件將包含在翻譯單元中,因此全局靜態變量應該在該翻譯單元中保持可見。爲了從外部對象訪問它,您必須在翻譯單元中有一個功能,可以將值傳遞到外部。

否則只需在文件中的任何位置命名而不包含範圍,它將是全局的。爲了讓全局攜帶多個文件,請使用關鍵字extern來告訴編譯器,您所指的全局變量已經存在於另一個鏈接器符號中。

相關問題