Bei der unten stehenden Anweisung hätte ich erwartet, dass der Präprozessor den Wert berechnet und dort einsetzt wo MVALUE auftaucht. Tut er aber nicht, sondern meckert den Aufruf einer unbekannten Funktion (round()) an. Was kann ich tun damit der Präprozessor den Wert berechent? #define MVALUE round(AREF*1000/(1023*PROGRAD))
wahrscheinlich kannst Du nicht mit #define arbeiten und musst stattdessen const int MVALUE round(AREF*1000/(1023*PROGRAD)) nehmen Oder so.
Der PP wird ohnehin weder runden, noch round aufrufen, sondern er macht halt stumpf seine Textersetzung und setzt round in den Quelltext ein. Vrmtl. wird der Compiler dann meckern, daß er die Funktion nicht kennt; dagegen hilft dann das passende #include.
> [..] dass der Präprozessor den Wert berechnet [..] > Tut er aber nicht, sondern meckert den Aufruf einer unbekannten Funktion > (round()) an Mecker der Präprozessor oder der Compiler? Ersterer sollte hier nur Textersetzung machen und deswegen nix zu meckern haben. Wenn zweiterer meckert dann such mal nach der Deklaration von round().
Vielen Dank für eure Antworten. Verstanden: der Präprozessor macht "nur" Textersetzungen. Mit <math.h> funktioniert es.
Wenn AREF und PROGRAD Integerwerte sind, brauchst du round() nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.