Keil 报错: error C129: missing ‘;‘ before ‘function‘ error C129: missing ‘;‘ before ‘code‘之类的错误

博客讨论了在使用Keil进行嵌入式编程时遇到的编译错误C129。该错误通常由于宏定义不正确或结构体定义冲突引起。具体表现为Keil在检测到未定义的类型时,错误提示缺少分号。通过检查和调整宏定义,特别是与结构体相关的条件编译,可以解决此类问题。示例中,KEY_TYPE的宏定义与结构体KEY的限定条件不匹配,导致了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Keil 报错:
error C129: missing ‘;’ before ‘function’
error C129: missing ‘;’ before ‘code’
解决办法:keil检测到未定义,一般情况可能是由于宏开关问题,导致一些定义被屏蔽了,检查一下宏开关或者重新做好定义
这类的错误都是由于检测到未定义,但是报错却比较奇怪,比如下面这个没有检测到u32没定义就报错error C129: missing ‘;’ before ‘function’
在这里插入图片描述
检测到KEY没定义就报错error C129: missing ‘;’ before ‘code’
下面这个例子就是由于定义KEY_TYPE为GPIO_KEY 了,但是KEY结构体限制在KEY_TYPE为ADC_KEY了,导致keil报错error C129: missing ‘;’ before ‘code’

#define KEY_TYPE             GPIO_KEY 
#if(KEY_TYPE == ADC_KEY)
typedef struct t_Key
{
	U16 Value;
}KEY;
#endif	
#if (KEY_TYPE == GPIO_KEY)
KEY CODE KeyTab[]=
{
	1;
};
#endif	
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值