STM32&C语言初学error笔记2022.9.10

发布于:2022-12-22 ⋅ 阅读:(530) ⋅ 点赞:(0)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

STM32&C语言学习笔记。今天学习到按键输出控制。好久不用C语言了犯了几个低级错误,在此记录一下_


提示:以下是本篇文章正文内容,下面案例可供参考

一、error: #268: declaration may not appear after executable statement in block?

对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量。

int main()
{
	LED_Init();
	delay_init();
	BEEP_Init();
	KEY_Init();
	u8 KEYnum = 0;

}

这里把变量的定义放在了初始化函数后面,出现了错误268

2error: #18: expected a “)”/error:if statement has empty body

	if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
	{
		delay_ms(10);
		key_up = 0;	
		if(KEY0==1)return KEY0_PRES;
		else if(KEY1==1)return KEY1_PRES;
		else if(WK_UP==1)return WKUP_PRES;
	}else if(WK_UP==0 && KEY1==1 && KEY0==1)key_up = 1;
	return 0;

这个错误找了半个多小时真是麻了啊!
报错显示if(key_up&&(KEY00||KEY10||WK_UP==1))这一行
expected a “)” 我???看的怀疑自己眼花了,原因居然是.h文件里的宏定义后面错加了分号。
那么为什么会报这个expected a ")"错误呢,或者这个错误if statement has empty body,是因为宏定义是字符串的替换,我们把A宏定义为B,在B的最后加分号相当于把A定义为“B;”,出现混乱,在本次的if语句情况下就出现了一连串的需要括号和if条件后为空执行情况。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到