我已经解决了所有其他类似问题,但我无法理解为什么会收到此错误:
warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
&((~((PERIPHS_IO_MUX_FUNC)<<(PERIPHS_IO_MUX_FUNC_S)))) \
我正在使用xtensa-gcc。以下是代码(来自ESP8266 SDK):
#define PIN_FUNC_SELECT(PIN_NAME, FUNC) do { \
WRITE_PERI_REG(PIN_NAME, \
(READ_PERI_REG(PIN_NAME)) \
&((~((PERIPHS_IO_MUX_FUNC)<<(PERIPHS_IO_MUX_FUNC_S)))) \
|((((FUNC&BIT2)<<(2))|(FUNC&0x3))<<(PERIPHS_IO_MUX_FUNC_S)) ); \
} while (0)
答案 0 :(得分:1)
&#34;&amp;&#34;和&#34; |&#34;在最后两行中的前导都在括号的同一级别。编译器警告您开发人员可能会对优先级产生一些混淆。