C/C++ round()-Fehler beheben: error: invalid operands of types 'float' and 'int' to binary 'operator&'
English
Deutsch
Problem:
Sie versuchen, ein C/C++-Programm zu kompilieren, aber Sie sehen eine Fehlermeldung wie
error_log.txt
src\main.cpp:357:21: error: invalid operands of types 'float' and 'int' to binary 'operator&'die sich auf eine Zeile wie
fix_round_cast.c
long m = round(v) & 0x7FF;Lösung
Das Ergebnis von round() ist eine Gleitkommazahl. Sie versuchen, den &-Operator zu verwenden, um ein bitweises AND zwischen einem float und einem int (0x7FF im obigen Beispiel) durchzuführen. Sie können jedoch keine bitweisen Operationen auf floats in C/C++ durchführen.
Um dies zu beheben, wandeln Sie das Ergebnis von round() in int um:
fix_round_cast.c
long m = ((int)round(v)) & 0x7FF;Das sollte den Compilerfehler beheben.
Check out similar posts by category:
C/C++, GCC Errors
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow