【发布时间】:2016-11-02 02:09:13
【问题描述】:
对于嵌入式系统中的外围需求,我必须声明一个变量来读取寄存器,但以后不会使用该值。因此,我自然会收到关于我未使用的变量的编译器警告。 如何抑制警告?我有两种方法:
- 使用编译器指令,我犹豫了,因为它们依赖于编译器
-
从变量中添加一个虚拟读取,例如:
volatile int var; var = peripheral_register; var = var;
你有更好的主意吗?
【问题讨论】:
-
传统上,您为此目的使用
(void)variable。 -
@FUZxxl:这实际上是正确的方法。其他表达式仍然可以生成警告(不能保证某些垃圾编译器会抱怨这一点并且不会在其他表达式上)。
-
3) 不要以这种方式访问外围设备,希望编译器生成所需的指令并产生负载,必须给编译器一个创建指令的理由。
-
呸,我刚刚意识到即使是 GCC 也会对
volatile发出这样的蹩脚警告。 “变量 x 已设置但未使用”。我认为这是一个编译器错误。
标签: c embedded compiler-warnings