STM32程序问题 求具体含义和详细解释!!!!!追加很多分!!!!!!!!
#define__IOvolatiletypedefunsignedintuint32_t;typedef__IOuint32_tvu32;typedefunsigned...
#define __IO volatile
typedef unsigned int uint32_t;
typedef __IO uint32_t vu32;
typedef unsigned short int uint16_t; 展开
typedef unsigned int uint32_t;
typedef __IO uint32_t vu32;
typedef unsigned short int uint16_t; 展开
4个回答
展开全部
1、volatile 就是个关键字,代表该关键字具体数值会预想不到的被改变,避免编译器优化掉。更具体的理解可以在论坛上搜索。(解释很多字,这里不好打出来)
2、typedef也是一个关键字,其实就是给另外的变量换一个名字而已。
例如:typedef unsigned char uint8_t;
后面你要定义一个unsigned char 型变量:
unsigned char a;等同于uint8_t a;有没有觉得后面的定义比前面更易读?
其实标准的命名是这样:uint8_t u8_a;这样后面你用这个变量,时刻都清除这个变量是无符号占8个字节,这样就会大大避免数据溢出这个错误。
2、typedef也是一个关键字,其实就是给另外的变量换一个名字而已。
例如:typedef unsigned char uint8_t;
后面你要定义一个unsigned char 型变量:
unsigned char a;等同于uint8_t a;有没有觉得后面的定义比前面更易读?
其实标准的命名是这样:uint8_t u8_a;这样后面你用这个变量,时刻都清除这个变量是无符号占8个字节,这样就会大大避免数据溢出这个错误。
追问
最主要的是typedef __IO uint32_t vu32;代表啥意思?如果单只是unsigned int好理解,但是加上_IO就不知道怎么回事了。
追答
上面的宏定义不是说的很清楚了吗?
#define __IO volatile
typedef unsigned int uint32_t;
typedef __IO uint32_t vu32;
那么vu32 b;就等同于 volatile unsigned int b;说明这是个会经常改变的无符号整型数据
展开全部
typedef看英文大概意思是 类型定义,就是给已有的类型或名字取另外一个新的名字
你以后在其他地方用到unsigned int就可以用uint32_t来代替
uint16_t代替unsigned short int
vu32大题__IO uint32_t
比如uint16_t i,j; ==>等同于unsigned short int i,j;
你以后在其他地方用到unsigned int就可以用uint32_t来代替
uint16_t代替unsigned short int
vu32大题__IO uint32_t
比如uint16_t i,j; ==>等同于unsigned short int i,j;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
__IO 就是volatile
#define __IO volatile
#define __IO volatile
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你百度一下define和typedef
或者去看书,一般书上都会讲得比较详细。
或者去看书,一般书上都会讲得比较详细。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询