[英]How to make global variable in library project using MPLAB X IDE
我想使用MPLAB X IDE(用于PIC开发的IDE)在C语言中创建一个库。
我的库ABCLib具有一个简单的源文件,如下所示:
文件abc.c
void abcTest(int n){
// I want store n as global variable
}
要在MyProject中使用该库,我必须在MyProject头文件夹中创建abc.h:
文件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的值。
我正在开发一个库,打算在所有项目中重用它。
您需要在要使用其全局值的所有文件中将变量声明为外部变量。
例:
文件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);
}
问候
编译MyProject.c之后,转换单元中将包含abc.h文件,因此全局静态变量应在该转换单元中保持可见。 为了从外部对象访问它,您必须在转换单元中具有一个函数,该函数可以将值传递到外部。
否则,只要在文件中的任意位置命名即可,而不会产生范围,它将是全局的。 为了使全局携带多个文件,请使用extern
关键字告诉编译器您所引用的是另一个链接器符号中已经存在的全局变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.