关于volatile

zjut_yanyehe 2013-11-22 09:39:44
volatile int AHBSEL: 3;
这句话什么意思啊?
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
流型 2013-11-23
  • 打赏
  • 举报
回复
引用 3 楼 wangfan027 的回复:
[quote=引用 2 楼 yanyehe89 的回复:] 请问从低到高的前三位吗?三位值是随机的吗?
连着的三位,这里是bit0:bit2 举个例子,一个键盘有ABCDEF6个键,定义时可以这样

typedef struct{
  unsigned char a:1;//成员a占1位
  unsigned char b:1;
  unsigned char c:1;
  unsigned char d:1;
  unsigned char e:1;
  unsigned char f:1;
  unsigned char res:2;
}KEY_T;
KEY_T key;
这样key占一个字节,abcdef各占其中1位[/quote]
vnvlyp 2013-11-23
  • 打赏
  • 举报
回复
volatile表示线程同步,每次你用这个变量都能保证当前值是当前最新的值,即便其他线程或者中断修改了他的值,你下次再访问时又会重新去物理地址读取一遍
lbing7 2013-11-23
  • 打赏
  • 举报
回复
volatile 表示被声明的变量让编译器别去优化,每次操作的时候,都切实的访问其物理存储空间
dceacho 2013-11-22
  • 打赏
  • 举报
回复
引用 2 楼 yanyehe89 的回复:
请问从低到高的前三位吗?三位值是随机的吗?
连着的三位,这里是bit0:bit2 举个例子,一个键盘有ABCDEF6个键,定义时可以这样

typedef struct{
  unsigned char a:1;//成员a占1位
  unsigned char b:1;
  unsigned char c:1;
  unsigned char d:1;
  unsigned char e:1;
  unsigned char f:1;
  unsigned char res:2;
}KEY_T;
KEY_T key;
这样key占一个字节,abcdef各占其中1位
zjut_yanyehe 2013-11-22
  • 打赏
  • 举报
回复
请问从低到高的前三位吗?三位值是随机的吗?
dceacho 2013-11-22
  • 打赏
  • 举报
回复
AHBSEL 占三位(即值在0:7) volatile表示该值可能被硬件修改或者被中断修改

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧