就是对编译器优化过程中起到的作用有哪些?

初学者可能不太关心优化选项,但对于有经验的工程师来说,掌握代码优化是必备技能。

今天的话题是关于关键字在代码优化中优化过程中的作用。

一、关于

是类型修饰符 ( type )。

is的作用是作为一个指令关键字,保证这条指令不会因为编译器优化而被省略,每次都需要直接读取值。

变量是指这个变量可能会被意外改变,这样编译器就不会假定这个变量的值。

图片[1]-就是对编译器优化过程中起到的作用有哪些?-未来可期SEO

—来自百度百科

的定义,看的时候应该看过无数遍了。 但我相信大多数人对其中的含义并没有深刻的理解。

但是当你真正对项目进行编程和开发时,你会进一步理解其中的含义。

二、关键字对编译器优化的影响

我们都知道编译器有优化代码的功能网站关键词优化,我们常用的集成开发环境(Keil、IAR)都有优化选项。

如果您声明一个没有关键字的变量,编译器可能会干扰变量访问并生成意外代码或删除预期功能。

图片[2]-就是对编译器优化过程中起到的作用有哪些?-未来可期SEO

1、什么时候用?

声明的常见用例:

例如STM32代码中:

#define __O volatile /*!< Defines 'write only' permissions */#define     __IO    volatile             /*!< Defines 'read / write' permissions */

浏览代码,你会发现很多地方都用到了“__IO”,也就是。

在运行系统的项目中,建议在线程间共享的全局变量中加入关键字。 很多人不关心这个。

2、不使用时可能出现的问题

图片[3]-就是对编译器优化过程中起到的作用有哪些?-未来可期SEO

如果一个变量没有用 声明,编译器假定它的值不能在定义它的范围之外被修改。

因此,编译器可能会执行不需要的优化。 这可以通过多种方式表现出来:

例子:

自己写一个延时函数:

void Delay(int Cnt){ int i;
while(Cnt--) { i++; for(i=0; i<10; i++); }}

当你处于不同的优化级别时网站关键词优化,延迟时间可能会有所不同;

同样的代码网站关键词优化,你在Keil和IAR环境下编译的延迟时间也可能不同。

当然,更深入的理解会涉及到汇编代码,编译后的汇编代码会更直观地表现出差异。

除非注明,否则均为未来可期SEO原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.szsinotech.com/seo_4617.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片