keil算法优化总结(持续更新)

本文总结了Keil C编程中的算法优化技巧,包括如何进行P0的任意位访问,理解模块化编程中extern的作用,以及避免在switch用法中的常见错误。在位操作中,通过移位指令实现P0口的位访问;extern关键字用于在不同源文件间共享变量,确保模块化编程的协同;同时强调了switch语句中case分支末尾添加break的重要性,以防止意外的连续执行。

P0的任意位访问

在for循环中,没法用 P0_i 实现每次循环都访问不同的位
解决方案为:
将想要的位,通过移位指令移到最低位,再对其他位逻辑与0,清0。

	for(i=0;i<8;i++)
	{
		 
		 State[i]=(0x01)&(P2>>i);//实现每一位都送人了state数组
		
	}

模块化编程的extern

如:delay.c 中有一变量A。main.c中想用A
则需delay.c先定义全局变量A:int A=0;
再在main.c中定义:extern int A;
则在main.c中即可使用int A
或者extern int A;放在delay.h中,main.c再include delay.h文件就行了

extern在模块化编程里的作用

switch用法易错点

用法

switch (表达式)
{
    case 常量表达式1:    语句1;break;
    case 常量表达式2:    语句2;break;case 常量表达式n:    语句n:break;
    default:        语句n+1
}

易错点

case的语句的最后一定要加break;
如果不加的话后面的语句会被继续执行。
例如:如下图程序所示,student=10,应循环case10,输出“学生人数为10人”,但因为没有break,继续switch循环还会执行case20,输出“学生人数为20人”,case20这句语句含有break,结束循环。

这样就会出现问题,程序要求应当只需要输出“学生人数为10人”即可,但实际程序输出了两个printf。若在case10后加上break,则正确。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值