Moin Andreas,
probier's mal mit casten:
Code:workOnData ((struct Data *) &Buffer[offset]);
viele Grüße
Andreas
Hallo,ich habe eine Frage. Es geht um einen Schönheitsfehler. Ich habe (im groben) folgendes Programm:Ich empfange den Inhalt für die Struktur "Data" via RS232 in ein das Byte-Array Buffer. Der Offset, ab wann die Daten für die Struktur stehen ändert sich und ich erhalte es in der Variable Offset.Den Pointer auf den Start der Daten für die Struktur übergebe ich dann der Funktion workOnData. Das ganze funktioniert, allerdings erhalte ich von AVR-Studio folgende Fehlermeldung:warning: passing argument 1 of 'workOnData' from incompatible pointer typeDie Ursache für die Warnung ist wohl der unterschiedliche Pointer-Typ. Ich bin mit C-Pointern nicht so richtig fit. Gibt es eine Möglichkeit diese Warnung zu vermieden?Viele GrüßeAndreasCode:struct Data{ U8 Data1; U16 Data2; //...};void workOnData (struct Data *receivedData){ //...}int main (void){ U8 Buffer[20]; U8 offset; receiveData (&Buffer[0], &offset); workOnData (&Buffer[offset]); return (0);}
Moin Andreas,
probier's mal mit casten:
Code:workOnData ((struct Data *) &Buffer[offset]);
viele Grüße
Andreas
#define true ('/'/'/')
#define false ('-'-'-')
Hallo danimath,
das funktioniert einwandfrei. Vielen Dank!
Die Warnung ist weg, und der Code funktioniert genauso wie vorher.
Endlich ist auch das nervige Problem weg, wenn ich nach dem compilieren via F4 zum ersten Fehler springen wollte. Meisstens ist er dann zur Warnung gesprungen.
Viele Grüße
Andreas
Lesezeichen