C 如何使用MPLAB X IDE在库项目中生成全局变量

C 如何使用MPLAB X IDE在库项目中生成全局变量,c,mplab,C,Mplab,我想使用MPLAB X IDE(用于PIC开发的IDE)在C中创建一个库 My library ABCLib有一个简单的源文件,如下所示: 文件abc.c void abcTest(int n){ // I want store n as global variable } #ifndef _ABC_H #define _ABC_H void abcTest(int n); #endif; #ifndef _ABC_H #define _ABC_H void abcTe

我想使用MPLAB X IDE(用于PIC开发的IDE)在C中创建一个库

My library ABCLib有一个简单的源文件,如下所示:

文件abc.c

void abcTest(int n){ 
    // I want store n as global variable
} 
#ifndef _ABC_H
#define _ABC_H 

void abcTest(int n);

#endif;
#ifndef _ABC_H
#define _ABC_H 

void abcTest(int n);

#endif;
要在MyProject中使用此库,我必须在MyProject标题文件夹中创建abc.h:

文件abc.h

void abcTest(int n){ 
    // I want store n as global variable
} 
#ifndef _ABC_H
#define _ABC_H 

void abcTest(int n);

#endif;
#ifndef _ABC_H
#define _ABC_H 

void abcTest(int n);

#endif;
文件MyProject.c(主文件)

现在,我想将n存储为全局变量,因此,在调用abcTest()之后,我可以在任何需要的地方检索n的值


我正在开发一个库,打算在我的所有项目中重用它。

编译MyProject.c后,abc.h文件将包含在翻译单元中,因此全局静态变量应该在翻译单元中保持可见。为了从外部对象访问它,您必须在翻译单元中有一个可以将值传递到外部的函数


否则,只需将其命名为文件中的任意位置,而不包含作用域,它将是全局的。要在多个文件中进行全局进位,请使用
extern
关键字告诉编译器您引用的是另一个链接器符号中已经存在的全局变量。

您需要在所有要使用其全局值的文件中将该变量声明为外部变量

例如:

文件abc.c

extern int global_a;
void abcTest(int n){ 
    global_a+=n;
} 
文件abc.h

文件MyProject.c(主文件)

问候