Huhu, ich hab ein kleines Problem...Ich programmiere im Code Composer Studio mit C++ auf einem TMS302F2812. Nun habe ich ein paar Funktionen geschrieben die mir einen Rückgabewert liefern sollen.Soweit nichts wildes, nur das irgendwas bei der Werterückgabe verkehrt läuft. Ich möchte einen Wert vom Typ long zurückgeben (also einen mit Vorzeichen). Nun bekomme ich aber bei Werten über 15 Bit einen Überlauf, sprich Werte von -32768 bis 32767 werden korrekt übergeben. Da ich aber mit Variablen arbeite die vom Typ long sind und diese auch den Wertebereich von -2147483648 bis 2147483647 mit Vorzeichen abdecken, bin ich etwas ratlos. Normalerweise sollte der Übergabetyp doch möglich sein, oder muss ich da noch irgendwelche Einstellungen im Compiler vornehmen? Hoffe mal jemand kennt dieses Problem, komm mir langsam schon etwas dämlich vor... Vielen Dank im Voraus! /*Beispielprogramm das an eine Variable vom Typ long dann bei mir eine -32768 zurückgibt*/ long Beispiel(long Zahl) { Zahl=32768; return Zahl; }
Wie lässt du dir den Rückgabewert ausgeben? Vielleicht gehen da ein paar Bits verloren. Ich meine in C gäbs 'nen sizeof-Operator - der sollte zumindest Klarheit über das Fassungsvermögen der Variablen liefern (nein, C ist nicht meine Muttersprache ;) ) Gruß Kai
Habs grade rausgefunden... In den Build Options den Haken bei -> Treat C Files as C++ Files setzen und dann gehts... Is mal wieder spät zum rumwerkeln... Nun noch die stdlib einbinden, dann klappts auch der labs Befehl wieder. NARF Trotzdem danke für die Mühe!!!
Ja das ganze ist, wie ich gerade rausgefunden habe, nicht so einfach... Ich habe eine Funktion in der ich den Arctan nach dem Approximationsverfahren ermitteln möchte. Wenn ich das ganze jetzt auf C++ umstelle, dann klappt das mit der Werteübergabe, jedoch muss ich dann mein ganzes Programm umbauen, da er jetzt noch viele andere Dinge bemängelt. Ich werde es mir jetzt einfach so basteln, das ich den Zeiger auf meine Struktur mit übergebe und dort den Winkel direkt reinschreibe.Dann brauch ich den ganzen Käse mit dem Rückgabewert nicht und die Sache ist gelöst. Irgendwie scheint der Compiler hier nicht standardkonform zu sein. Langsam wirds eng mit der Zeitplanung für das Projekt :( Trotzdem danke!!!
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.