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

volatile可以定义函数么

莱克迷KW 2020-01-16 浏览量:596
volatile可以定义函数么
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 不可以,首先得明白C语言中关键字volatile的定义和作用:Volatile意思是"易变的"在C中应该解释为"直接存取原始内存地址"比较合适“易变”是因为外在因素引起的,像多线程,中断等而volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,告诉编译器对该变量不做优化,都会直接从变量内存地址中读取数据,从而可以提供对特殊地址的稳定访问,它的定义仅仅是针对变量​,一般在以下场合用来修饰变量:

    1)中断服务程序中修改的供其它程序检测的变量,需要加volatile;

    2)多任务环境下各任务间共享的标志,应该加volatile;​

    3)存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义.

    • 发布于 2020-01-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  •   不可以定义。 只能用来定义变量。在嵌入式中用得多。
    • 发布于2020-01-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 在c语言中volatile只能用来修饰变量,不能用来修饰函数。
    • 发布于2020-01-16
    • 举报
    • 评论 0
    • 0
    • 0

  • volatile是一个类型修饰符(type specifier),被设计用来修饰被不同线程访问和修改的变量。这个是词条里面的解释,也就是说,他是用来定义变量的
    • 发布于2020-01-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 不可以,volatile 存在的意义是 不对它修饰的变量进行优化。 编译器开优化的情况下,对于结果没有使用的代码会被优化掉,但如果接收结果的变量是 volatile修饰的,就不会被优化掉。
    • 发布于2020-01-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 不行,这个关键字只能用来定义变量,意思是不对此变量进行优化
    • 发布于2020-01-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 不可以,volatile是修饰变量和函数用的,防止编译器对变量和函数进行优化造成的程序运行异常,特别是一些关键函数或者变量前面会加vilatile修饰
    • 发布于2020-02-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

volatile可以定义函数么