对于嵌入式系统中的外设需求,我必须声明一个变量来读取寄存器,但以后不会使用该值。因此,我自然会收到关于未使用变量的编译器警告。 我怎样才能抑制警告?我有两种方法:
- 使用编译器指令,我犹豫了,因为它们依赖于编译器
从变量中添加一个虚拟读取,例如:
volatile int var; var = peripheral_register; var = var;
你有更好的主意吗?
最佳答案
如果您需要做的只是读取寄存器(例如清除一些状态标志),那么您根本不需要接收变量,只需:
(void)peripheral_register ;
假设寄存器本身被声明为 volatile 就足够了,因此必须读取它。
否则你可以通过外部链接使你的虚拟 var
全局化 - 这样编译器就无法确定它没有被其他地方读取;但这是一个更丑陋的解决方案。
关于c - 如何抑制编译器对 C 中未使用变量的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371426/