高效的C编程之:C编译器及其优化(下)

来源:本站
导读:目前正在解读《高效的C编程之:C编译器及其优化(下)》的相关信息,《高效的C编程之:C编译器及其优化(下)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《高效的C编程之:C编译器及其优化(下)》的详细说明。
简介:本章将帮助读者在ARM处理器上编写高效的C代码。本章涉及的一些技术不仅适用于ARM处理器,也适用于其他RISC处理器。本章首先从ARM编译器及其优化入手,讲解C编译器在优化代码时所碰到的一些问题。(EEFOCUS)

下面的例子显示了同一段程序,使用内嵌功能和不使用内嵌功能编译出的不同结果。

要编译的源文件如下。

intbar(inta)

{

a=a+5;

returna;

}

intfoo(inti)

{

i=bar(i);

i=i-2;

i=bar(i);

i++;

returni;

}

下面的汇编程序为不使用内嵌功能时编译出的结果。

bar

ADDr0,r0,#5

MOVpc,lr

foo

STRlr,[sp,#-4]!

BLbar

SUBr0,r0,#2

BLbar

ADDr0,r0,#1

LDRpc,[sp],#4

下面的汇编码是使用内嵌功能时编译出的结果。

foo

ADDr0,r0,#5

SUBr0,r0,#2

ADDr0,r0,#5

ADDr0,r0,#1

MOVpc,lr

从上面的例子可以看出在使用内嵌功能时,函数间的相互调用减少了数据的压栈和出栈,节省了程序的执行时间,但如果内嵌函数被调用多次会造成空间的浪费。

提醒:《高效的C编程之:C编译器及其优化(下)》最后刷新时间 2024-03-14 01:07:26,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《高效的C编程之:C编译器及其优化(下)》该内容的真实性请自行鉴别。