keil报错:main.c(99): error: #20: identifier “xxx“ is undefined

报错如下:

main.c(116): main.c(116): error: #20: identifier "g_pol_par_linear" is undefined

main.c(99): error: #20: identifier "g_motor_sta_linear" is undefined

main

cs 复制代码
#include "Interpolation_Linear.h"     //Interpolation_Linear.c里定义了g_pol_par_linear

int main(void)
{
	g_pol_par_linear.moving_mode = 1;
    while(g_motor_sta_linear);	
	printf("圆弧插补\r\n");
}

Interpolation_Linear.c

cs 复制代码
//结构体
inter_pol_def g_pol_par_linear= {0};   /* 直线插补参数值 */


//枚举
__IO st_motor_status_def  g_motor_sta_linear = STATE_STOP_linear;     /* 步进电机运动状态 */

我认为在主函数里引用了"Interpolation_Linear"的头文件,就包含了里面定义的变量。

但是会报错。

解决办法:在主函数加extern声明。

cs 复制代码
#include "Interpolation_Linear.h"     //Interpolation_Linear.c里定义了g_pol_par_linear

extern inter_pol_def g_pol_par_linear;					//直线插补模式
extern st_motor_status_def  g_motor_sta_linear;			//直线插补	运动模式

int main(void)
{
	g_pol_par_linear.moving_mode = 1;
    while(g_motor_sta_linear);
	printf("圆弧插补\r\n");
}

加入声明后报错消失。

相关推荐
水水沝淼㵘19 分钟前
嵌入式开发学习日志(数据结构--单链表)Day20
c语言·开发语言·数据结构·学习·算法
@NachoNEKO23 分钟前
一种资源有限单片机处理cJSON数据的方法
单片机·嵌入式硬件
qq_3018816936 分钟前
XD08M3232接近感应单片机的接近感应模块的工作原理
单片机·嵌入式硬件·硬件架构
爱学习的小旭44 分钟前
STMCubeMX使用TB6612驱动编码轮并进行测速
单片机·嵌入式硬件
不脱发的程序猿2 小时前
MCU裸机程序如何移植到RTOS?
单片机·嵌入式硬件·rtos
PAQQ2 小时前
【python】windows实现与k230使用socket通信并传输文件
python·stm32·单片机
小智学长 | 嵌入式2 小时前
单片机-STM32部分:14、SPI
单片机·嵌入式硬件
深圳市青牛科技实业有限公司2 小时前
D2203使用手册—高压、小电流LDO产品4.6V~36V、150mA
人工智能·单片机·嵌入式硬件·电动工具·工业散热风扇
人类恶.3 小时前
C 语言学习笔记(6)
c语言·笔记·学习
SY师弟3 小时前
51单片机——交通指示灯控制器设计
c语言·单片机·嵌入式硬件·51单片机