单片机中volatile关键字的使用有何特殊之处?

2026-05-22 16:020阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2025个文字,预计阅读时间需要9分钟。

单片机中volatile关键字的使用有何特殊之处?

0+1、概述、定义为volatile的变量意味着该变量可能被意想不到地改变,因此编译器不会假设这个变量的值。精确地说,优化器在用到这个变量时,必须每次都小心地重新读取它的值。

01、简述

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。

简单来说,如果这变量很重要,且你不想它被编译器优化,就用volatile修饰。

02、用处

关于编译器优化

如果你在编译器器开了优化,那么就要小心了。以下代码使用IAR7.20,优化等级High,选Balanced。

阅读全文

本文共计2025个文字,预计阅读时间需要9分钟。

单片机中volatile关键字的使用有何特殊之处?

0+1、概述、定义为volatile的变量意味着该变量可能被意想不到地改变,因此编译器不会假设这个变量的值。精确地说,优化器在用到这个变量时,必须每次都小心地重新读取它的值。

01、简述

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。

简单来说,如果这变量很重要,且你不想它被编译器优化,就用volatile修饰。

02、用处

关于编译器优化

如果你在编译器器开了优化,那么就要小心了。以下代码使用IAR7.20,优化等级High,选Balanced。

阅读全文