Hallo zusammen, Ich versuche eine Funktion zu erstellen, in der ich als Parameter ein paar statische Variablen zuordnet. Diese Variablen sollten ihren Wert in einer anderen Funktion ändern (erhöhen oder verringern). Zum Zeitpunkt der Durchführung der Tests wird jedoch festgestellt, dass der Wert dieser Variablen derselbe bleibt wie derjenige, der eingeleitet wurde. static uint8_t CursorPosition; static uint8_t PositionDigit; STATIC LCDH_DIGIT_ENUM eEnterDigitHandler( char *cString, uint8_t Position, uint8_t Cursor); /* Zuweisung der Parameter */ eEnterDigitHandler(StringEnterPassword, PositionDigit, CursorPosition);
Du musst die schon als pointer übergeben. Grundlagen von C erst mal erarbeiten!
Also dann so? : static uint8_t CursorPosition; static uint8_t PositionDigit; STATIC LCDH_DIGIT_ENUM eEnterDigitHandler( char *cString, uint8_t *Position, uint8_t *Cursor); STATIC LCDH_DIGIT_ENUM eEnterDigitHandler( char *cString, uint8_t Position, uint8_t *Cursor) { if (cString[*Position] != 42) { if(*Position > 49) { eRetValue = DIGIT_COMPLETE; } else { *Position++; *Cursor++; eRetValue = DIGIT_CURSOR; } } } /* Zuweisung der Parameter */ eEnterDigitHandler(StringEnterPassword, &PositionDigit, &CursorPosition);
Im Header von
1 | STATIC LCDH_DIGIT_ENUM eEnterDigitHandler( char *cString, uint8_t |
2 | Position, uint8_t *Cursor) |
hast Du vergessen Position als Pointer zu deklarieren
Student schrieb: > *Position++; Achau dir mal die Operator Precedence in C an: https://en.cppreference.com/w/c/language/operator_precedence Und dann überleg dir, ob das was du oben geschrieben hast, eher (*Position)++ oder *(Position++) entspricht, und welches du warum brauchst.
Der GCC sollte bei sowas eigentlich auch warnen, wenn man warnungen eingeschalten hat. Mit etwas in die Richtung "statement without effect" oder so.
Vielen Dank! Ja das habe ich jetzt bekommen. Habt ihr noch Empfehlungen wo man mehr in der C Programmierung-Grundlagen solche Sachen vertiefen kann? Vielen Dank
Oliver S. schrieb: > K&R, zweite Auflage Dieser fürchterliche K&R! So programmiert heute hoffentlich keiner mehr. C in a nutshell von König ist ganz gut, aber eher ein Referenzwerk. Als Lehrbuch hab ich den Mix C Compiler in guter Erinnerlung. Buch und Compiler kosten etwa $20. War aber nicht ganz standard-konform. Ist fürn Anfang aber egal.
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.