过去,我曾被教导C++编译器通常可以编译C语言代码,但不包括混合C和C++代码。然而,在这段代码中,我遇到了一个无法理解的错误。
这段代码可以通过GCC的C语言编译器进行编译,但是由于函数中出现了
这个错误是由什么引起的?
这段代码可以通过GCC的C语言编译器进行编译,但是由于函数中出现了
44|error: expected unqualified-id before ‘xor’ token|
的错误,因此GCC的C++编译器无法编译此代码。static uint16_t crc_update(uint16_t crc_in, int incr)
{
uint16_t xor = crc_in >> 15;
uint16_t out = crc_in << 1;
if (incr)
out++;
if (xor)
out ^= CRC_POLY;
return out;
}
这个错误是由什么引起的?
C/C++
是未定义行为。 - too honest for this site