1 变量定义
先来看下边的两处变量定义
Ⅰ
char a;
short b;
char c;
int d;
Ⅱ
char a;
char c;
short b;
int d;
显然两处定义的变量是相同的,不同之处在于定义的顺序。看一下他们分别在数据区的布局
(pad为无意义的填充空间)
Ⅰ
a pad b
c pad
d
Ⅱ
a c b
d
由上可得出一般意义上的准则:
最好把所有相同类型变量放在一起定义,以便优化存储器布局。
下面说一个例外的情况:
当函数局部变量数目有限时候,编译器会把局部变量分配给内部寄存器,每变量占用一个寄存器。此时使用32位int 或 unsigned int 局部变量最有效率。因为8或15位变量完成加法后还要在32位寄存器里面完成符号扩展。
还有就是冗余变量的使用,一般我们总是避免类似情况的使用。但是也有例外:
int f(void);
int g(void);
int errs;
void test1(void)
{
errs += f();
errs +=g();
}
void test2(void)
{
int localerrs = errs;
localerrs += f();
localerrs += g();
errs = lpcalerrsl
}
在test1中,每次访问全局变量errs,都需从相应存储器load到寄存器中,经函数调用后在store回原来存储区。共有两次load/store操作。在test2中显然只有一次load/store操作。
2参数传递
一般参数数目超过四个,则使用堆栈传递,因此尽量将参数控制在四个以下。
3循环条件
计数循环
for(loop=1; loop <= limit;loop++)是常用的循环形式。递减计数则很少使用。在逻辑上两种方式并没有差异,但映射到具体体系结构,就有了很大的不同。
本质原因:当进行非零常数比较时候,必须利用专门的CMP指令来执行。但是一个变量与0比较时候,可以直接利用条件执行的NE来判别。因此ARM体系下,建议递减至0的方式设置循环条件。
分享到:
相关推荐
在应用中,一般是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式相关的功能即可,这样可以满足嵌入式系统体积小和功耗低的要求。目前的嵌入式处理器主要包括:PowerPC、Motorola 68000、ARM系列...
计算机图形学实验报告完整资料整理(25道嵌入式习题的经典解答) 什么是嵌入式系统?其特点有些什么? ...在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。 S3C44B0X的内部各功能模块的用途
电子工艺 实 习 报 告 班 级 学 号 姓 名 同 组 人 指导教师 2010年 1 月 13 日 一、嵌入式的概述: 随着信息化技术的发展和... 第二阶段 嵌入式C语言编程基础 主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中
电子工艺 实 习 报 告 班 级 学 号 姓 名 同 组 人 指导教师 2010年 1 月 13 日 一、嵌入式的概述: 随着信息化技术的发展和... 第二阶段 嵌入式C语言编程基础 主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中
《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。《C程序设计语言》...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 ...
1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 ...