代码空间优化小结

代码量优化理念

当我们使用的芯片代码空间大小接近饱和的时但还有功能需要实现的时候就需要缩减代码量,代码量的缩减就好比连连看游戏,将相同的东西抵消,变成一个可重复执行的函数,这样就可以达到节省代码量的效果。代码量的优化也可能会有其他的代价,例如降低代码的可读性和运行效率,这一点是要在优化前进行权衡的。

1、合并相同的指令

优先寻找代码中重复执行的指令,这些重复指令可以封装为函数,通过重复调用同一个函数来达到减少代码量的目的。但这些重复执行的指令不应该不小于跳转函数和退出函数的指令大小,不然就是负优化了。
例子如下:

uint8_t c;

void func(uint8_t a, uint8_t b)
{
	if(1 == a)
		c = 1;
	else if(2 == a)
		c = 2;
	else if(3 == a)
		c = 3;
		
	if(1 == b)
		c = 1;
	else if(2 == b)
		c = 2;
	else if(3 == b)
		c = 3;
}

以上代码可以改为:

uint8_t c;

static void c_init(uint8_t val)
{
	if(1 == val)
		c = 1;
	else if(2 == val)
		c = 2;
	else if(3 == val)
		c = 3;
}

void func(uint8_t a, uint8_t b)
{
	c_init(a);
	c_init(b);
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值