|= 在 C 中做什么?

What does |= do in C?

我想了解 C 运算符 |= 的作用:

// Initialize the green led
// Enable the clock for PORT D.  See Page 216 of the Datasheet
SIM_SCGC5 |= (1U<<12);

// Enable the mux as GPIO.  See Page 193 of the Datasheet
PORTD_PCR5 = 0x100;

我也不明白0x100是什么意思。

它是一个bitwise OR复合赋值,它等同于:

SIM_SCGC5 = SIM_SCGC5 | (1U<<12);

0x100hexadecimal中的值100,0x前缀表示十六进制值。