EDA365电子论坛网
标题:
*(volatile unsigned int *)addr 具体是什么意思
[打印本页]
作者:
Maskman
时间:
2022-12-2 10:07
标题:
*(volatile unsigned int *)addr 具体是什么意思
*(volatile unsigned int *)是什么意思
3 U- h. `( w" X1 M1 I
; F7 Y8 a: x( K
例如*(volatile unsigned int *)addr 具体是什么意思
% M. F& p/ b* x& H4 I( x
: ?2 a/ P5 w+ f! p8 Q% N
作者:
big_gun
时间:
2022-12-2 11:06
分开来看,(volatile unsigned int *)就是定义一个可变的无符号整形指针,前面的那个*就是取起内容。
作者:
dragongfly
时间:
2022-12-2 13:25
这个多是嵌入式编程时可能会用到。
. r# @/ u, a, n2 c# m
* Y" H, M# k( {: W- `$ ? ~6 d N: Y- C
volatile的意思是告诉编译器,在编程源代码时,对这个变量不要使用优化。
作者:
Crash
时间:
2022-12-2 13:33
在一般的程序设计中,如:
. u$ O. _: V9 V, S
int *a; int b;
P9 b) E3 S$ ?$ f( N" @, b( }
b = (*a) * (*a);这种情况。
( {7 |0 h1 j8 g4 J; b" P! R6 H3 X! g
通常编译器为了减少存储器的读写时间,会把代码优化为:
6 p& |: J/ M$ r* M7 x/ K2 }/ f1 D
int *a; int b; int c;
! ~0 z. H( v S) n, E+ A
c = *a;
- _$ c G* A3 S
b = c * c;
! M- ?1 e& B/ f) s
因为外部存储器的读写速度肯定赶不上内存的读写速度,这样可以省一次外部存储器的读取时间,从而提高速度。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2