我不确定ulConfig |= ulMode;是什么意思?如果

void gpio_setup_mode(unsigned long ulGpioNum, unsigned long ulMode, unsigned long ulInvert)
{
  unsigned long ulConfig = ulInvert;
  ulConfig |= ulMode;
  s_ptGPIO->auiCFG[ulGpioNum] = ulConfig;
}


 gpio_setup_mode(GPIO8,  GPIO_MODE_OUTPUT,     GPIO_NOINVERT);

其中GPIO8,GPIO_MODE_输出,GPIO_NOINVERT
#define GPIO8                         8
#define GPIO_NOINVERT         0x00000000
#define GPIO_MODE_OUTPUT     0x00000011

最佳答案

ulConfig |= ulMode;

相当于
ulConfig = ulConfig | ulMode;

|-运算符在两个运算符之间执行二进制“或”运算。
根据C11标准(草案):
6.5.12按位包含或运算符
[...]
对映体
2每个操作数都应为整数类型。
语义学
[...]
4 |运算符的结果是操作数(即
当且仅当转换后的
已设置操作数)。

关于c - ulConfig | = ulMode是什么?意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31498972/

10-09 23:15