作业帮 > 综合 > 作业

语句 #define P_IOA_Data (volatile unsigned int *)0x7000

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/02 15:03:16
语句 #define P_IOA_Data (volatile unsigned int *)0x7000
如题,麻烦具体解释一下每个标识的含义,比如括号、星号、以及后面的0x7000,
0x7000 16进制数 表示一个地址
括号把 volatile unsigned int *包含起来,表示里面是一个整体
volatile unsigned int *
unsigned int * 无符号整数指针
volatile 告诉编译器 这个变量是变化的,每次取值一定要从这个地址取,不能优化取值的代码.有时候编译器计算时,对于一个变量会把它的值放在寄存器里,而不去地址读,因为编译器认为没有其他的线程会修改这个变量,就不去读了
再问: 那这整句话是什么意思呢?是定义这个P_IOA_Data变量,说这个变量时整型指针类型,并且它的地址是0x7000,读写数据请到这个地址去读。是这样吗?
再答: 不是一个变量 而是一个地址 也就是一个指针的值 你这个应该是用于驱动之类编程的吧,就是其他程序往这个地址保存数据,你这个程序读取这个地址的数据 用法如下 volatile unsigned int *p=P_IOA_Data; *p就可以取得一个unsigned int类型的值