2019-07-14 19:10发布
将军问鼎 发表于 2017-11-23 20:20 首先说 这个 _IO 的来源,他是在 Core_cm3.h 中重定义的,基本类型就是 volatile ,那么这个 volatile 这个关键词的本意是 易变的,也就是说,可能会发生多次变化,其实 也就是你告诉了编译器 这个变量 是多变的,那么编译器就不会进行优化编译,而且,处理这个变量时 会直接从 变量地址读取 ...
查看全部评分
勇哥-lzu 发表于 2017-11-24 12:10 CPU有缓冲区,数据会先从缓冲区拿,加volatile是指定不要从缓冲区拿
BG7RGT 发表于 2017-11-26 15:03 同意1楼的解析
最多设置5个标签!
Delay变量每次从内存中读取或者从CPU寄存器中读取对这个函数没有影响吧。
评分
查看全部评分
Delay这个形参加volatile修饰应该不是你这个意思,因为在函数里面这个值没有做过修改,就算编译器优化为从CPU寄存器中读取也没有问题。
他说的那句话没错,但是没有回答我的疑问,Delay作为形参,在函数里面并没有修改它的值,所以从内存或者寄存器操作该变量应该没有什么区别。
一周热门 更多>