' schrieb:Ist das so richtig???
Nein. Ich würde sagen, dass ist falsch. Ich bin der Meinung, du brauchst sieben Cluster, die alle so anfangen wie der eine (CPC_MSG_T) jetzt. So wie du es jetzt hast, liegen die sieben Teile CPC_CAN_MSG_T, CPS_CAN_PARAMS_T etc hintereinander! Die liegen aber tatsächlich übereinander - es ist ja ein union! (In MSGID, einem der ersten fünf Werte, ist die Kennugn hinterlegt, welcher der sieben Cluster jetzt folgt). Du musst also einen machen, der nur CPC_CAN_MSG_T enthält, einen mit nur CPS_CAN_PARAMS_T etc.
Zitat:wie kann als Rückgabeparameter meine Variable CPC_MSG anwählen?
Gute Frage. Nächste.
Zitat:wie kann ich hier die Variable CPC_CAN_MSG* msg anwählen?
Eben nur mit so einem Trick: Du sagt einfach, es ist ein Pointer auf U8 (möglicherweise U32) und der Pointer ist einer auf Daten eines Arrays. Dann musst du eben diese Array-Daten konvertieren in den einen richtigen der sieben Cluster.