发布网友 发布时间:2022-03-31 15:19
共3个回答
懂视网 时间:2022-03-31 19:40
c语言volatile关键字的作用,volatile影响编译器编译的结果,指出变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
热心网友 时间:2022-03-31 16:48
volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行优化,只认为XBYTE[2]=0x58(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一的进行编译并产生相应的机器代码(四条)volatile 修饰它右边的关键字,*是指针。指针与voltile组合在一起意思不变。追问那么这里的long short char不同的类型会怎样影响这几个宏定义的功能???追答那是修饰指针指向类型的啊!
热心网友 时间:2022-03-31 18:06
volatile就是不要让编译器优化这个变量。读写变量的时候直接对内存操作。如果优化了,会先读取寄存器的值,(这样就有可能和内存中的值不一样了)。常用于多线程变量,中断变量等