Rückgabewert falsch

OP #791245
Lesenswert?

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;
}
OP #791252
Lesenswert?

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!!!
OP #791396
Lesenswert?

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!!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren