c - 如何使用 MPLAB X IDE 在库项目中创建全局变量

标签 c mplab

我想使用 MPLAB X IDE(用于 PIC 开发的 ide)创建 C 语言库。

我的库 ABCLib 有一个像这样的简单源文件:

文件 abc.c

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

要在 MyProject 中使用此库,我必须在 MyProject header 文件夹中创建 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);
}

问候

关于c - 如何使用 MPLAB X IDE 在库项目中创建全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540731/

相关文章:

c - gcc -Wall -Wuninitialized 不会对未初始化的变量发出警告

c - ifconfig->which 的结果是我要提供给 TCP/IP 套接字的 IP 地址

c - 整数转字符串方法

c - Proteus 中伺服电机无法正常转动

arrays - 对数组元素的地址进行减法时出现意外结果

c - 为什么运行时上下文在为 10g 编译的程序中不能在 11g 上工作?

c - 如何正确配置PIC18端口D的输出方向?

c - 如何处理像这些寄存器这样的结构中的所有字段?

c - 通用 MPLAB X、XC8 和 C。跨函数和源文件使用变量

c - 使用互斥锁保护全局变量