• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

c语言中const和volatile理解

夕阳接你 2019-01-17 浏览量:778
c语言中,变量定义时有const和volatile关键字修饰,有什么意义?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • const是常量,写在rom区不能更改,

    volatile是对变量的修饰,防止编译器优化后运行出错,一般用在重要的变量上,防止编译器对变量优化

    • 发布于 2019-01-17
    • 举报
    • 评论 1
    • 1
    • 0
7943603 回复了 yhj416606438:不错,正解 回复

其他答案 数量:11
  • const 是常量,不会再修改的。volatile 意思是这个变量不确定很容易变化,为了一致每次都去寄存器度。const 多用于常量字符串,volatile 多用于寄存器
    • 发布于2019-01-17
    • 举报
    • 评论 0
    • 1
    • 0

  • Const是定义一个常量,这个量不能再被修改了,volatile不太清楚
    • 发布于2019-01-17
    • 举报
    • 评论 0
    • 0
    • 0

  • const就放在ROM区,

    volitile 是指易失性变量,通常用于端口,容易变化的地方。

    • 发布于2019-01-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 非常详细的话,请查看,C语言中关键字const、static、volatile的用法分析,c语言学习笔记(3)const和volatile以及const volatile int i=0分析
    • 发布于2019-01-26
    • 举报
    • 评论 0
    • 0
    • 0

  • (1)const 修饰的变量是只读的它不是真正的常量,本质还是变量,只是告诉编译器不能出现在赋值号左边!

    (2)const 修饰的局部变量在栈上分配空间

    (3)const 修饰的全局变量在全局数据区分配空间(vc、gcc 会将其放入常量区bcc 放入全局数据区)

    (4) const 只在编译期有用在运行期无用


    (1)volatile 可理解为“编译器警告指示字”

    (2)volatile 告诉编译器必须每次去内存中取变量值

    (3)volatile 主要修饰可能被多个线程访问的变量

    (4)volatile 也可以修饰可能被未知因数更改的变量

    volatile 强制编译器减少优化必须每次到内存中去取值


    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • const是常量,volatile是直接从缓存提取数据的变量,实时性比普通在内存中的变量高。
    • 发布于2019-01-30
    • 举报
    • 评论 0
    • 0
    • 0

  • const修饰的变量不可修改,编译时会将它放入flash中指定的地址,volatile一般是从flash取数据的时候要用,意思是不对这个变量做优化
    • 发布于2019-02-14
    • 举报
    • 评论 0
    • 0
    • 0

  • conust表示常量,而volatile表示的是对应的变量数据不能被编译器优化,两者的功能是不同的
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 0
    • 0

  • volitile一般都是在仿真编译器优化的数据中,相对来说const就是一个常量
    • 发布于2019-02-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看具体的应用场景,整体来说const表示常量,volitile是修饰符
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议你看看c语言的教材,这些是很基础的东西,里面有详细的介绍
    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

c语言中const和volatile理解