dringende Hilfe
-
Hallo zusammen,
könnt Ihr bitte klären, was die Zeillen genau machen?
Sa1638_Look_Up_Table4_map.N = 6;
Sa1638_Look_Up_Table4_map.x_table = (unsigned_int16_t*)&BTRP1;
Sa1638_Look_Up_Table4_map.z_table = (signed_int16_t*)&BTRP2;Wenn ihr genauer beschreiben könntet, würde ich mich seh freuen
Danke
Bagi
-
Hier liegt ein Objekt mit dem schönen Namen
Sa1638_Look_Up_Table4_mapvor. Wir kennen dessen Typ nicht, aber es ist anscheinend ein struct, welches mindestens die FelderN,x_tableundz_tablehat. Diesen Feldern werden nacheinander die Werte 6,&BTRP1und&BTRP2zugewiesen, dabei sind&BTRP1und&BTRP2die Adressen der ObjekteBTRP1undBTRP2. Aus den Zuweisungen können wir schließen, dass das Feld N einen arithmetischer Datentyp hat.x_tableundz_tablehaben einen Pointertyp, der kompatibel mitunsigned_int16_t*bzw.signed_int16_t*ist. Spekulation: Das sind sogar genau die Typen vonx_tablebzw.z_table, die andere realistische* Möglichkeit wärevoid*, aber dann wäre der Cast sinnlos. Wir kennen den Typ vonBTRP1undBTRP2, aber aus dem Vorhandensein der Casts kann man spekulieren, dass es keineunsigned_int16_tbzw.signed_int16_tsind. Jedoch machen viele schlechte Programmierer sinnlose Casts auf Verdacht, daher ist diese Spekulation nicht so fundiert wie die Annahmen über den Typ vonx_tableundz_table.Lass mich raten: Du hast nun genau so viel verstanden wie vorher, oder?
*: Realistisch heißt hier: Unter der Annahme, der Programmierer macht sich keinen Spaß daraus, mit Absicht unlesbaren und irreführenden Code zu schreiben.
-
bat schrieb:
Sa1638_Look_Up_Table4_map.x_table = (unsigned_int16_t*)&BTRP1; Sa1638_Look_Up_Table4_map.z_table = (signed_int16_t*)&BTRP2;Zeiger-Casts sind in C meistens sinnfrei (bei Anfängern immer) und lassen auf Inkompetenz des Entwicklers bei seinem Programmdesign schließen bzw. er hat den Überblick verloren, was sich nicht ausschließen muss.
Dass hierbei dem Compiler die Möglichkeit zur (statischen) Codeprüfung genommen wird, ist nur ein Aspekt. (normalerweise weiß der Compiler weitaus besser mit C Code umzugehen und den Überblick zu behalten, als der Entwickler)