In der Vergangenheit wurde mir beigebracht, dass der C++ - Compiler C-Code im Allgemeinen kompilieren kann, außer C- und C++ - Code zu mischen. aber traf ich einen Fehler, den ich in this codeWarum kann der C-Compiler diesen Code kompilieren, obwohl der C++ - Compiler das nicht kann?
nicht verstehen kannDieser Code kann durch die Sprache C-Compiler GCC kompiliert werden, aber der C++ Compiler GCC können diesen Code nicht kompiliert, da der folgende Fehler, 44|error: expected unqualified-id before ‘xor’ token|
in der crc_update
Funktion.
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;
}
Was verursachte diesen Fehler?
* "Ich habe gelernt, dass C++ Compiler kann c Sprachcode kompilieren" * Sie falsch unterrichtet wurden. C und C++ driften seit Beginn von C++ immer weiter auseinander. – user694733
C und C++ sind ** verschiedene ** Sprachen. Selbst ** iff ** Code kompiliert mit beiden Compilern, kann eine andere Semantik haben. Kompilieren eines als das andere ist eine strenge ** nicht **. Für die Anser: das sind definitiv nicht die einzigen Unterschiede. Einige sind subtiler, andere offensichtlich. – Olaf
Ich sehe, also müssen wir nicht versehentlich sagen "Ich kann c/C++". – NEWBIEEBIEE