C: typedef union

habe nichts gefunden in Verwandte Fragen. Wahrscheinlich ist es super noob, aber ich werde Sie trotzdem bitten/ich habe die folgenden in meine .h-Datei:

typedef union _API_Packet_0x90{
    uint8_t packet[26];
    struct _pack_struct {
        uint8_t start;
        uint8_t length[2];
        uint8_t addr64[8];
        uint8_t addr16[2];
        uint8_t options;
        uint8_t rfData[4];
        uint8_t chksum;
    };
} API_Packet_0x90;

API_Packet_0x90 ap90;

Dies ist der code für einen mikrocontroller, ich bin mit xc8 toolchain (ehemalige Hi-Tech C). Der compiler sagt:

xbee_api.h:19: warning: missing basic type; int angenommen
xbee_api.h:19:
Fehler: ";" erwartet
xbee_api.h:19: warning: missing basic type; int angenommen
xbee_api.h:21: warning: missing basic type; int angenommen

und das geht auf (zu viele Fehler)

Ich dachte, es ist uint8_t, also fügte ich #include <ctypes.h>. NÖ. Ich dachte, es ist über Namen, also habe ich versucht, alle Arten von Stücken wie

typedef union {
    uint8_t packet[26];
    struct _pack_struct {

    };
} API_Packet_0x90;

oder

typedef union {
    uint8_t packet[];
    struct _pack_struct {

    };
} API_Packet_0x90;

oder andere. Nichts hilft. Ich bin stecken, wie ich glaube, ich bin folgende syntax richtig. Keine Hilfe?

Wie Sie wissen, die Sie Hinzugefügt uint8_t definiert ? Vielleicht versuchen Sie 'typedef unsigned char uint8_t;' vor, die definition... entweder es hilft oder es wird sich Sie beklagen, sind Sie neu zu definieren.
Sie müssen wahrscheinlich #include <stdint.h> für uint8_t.
xbee_api.h:19: können Sie auch geben die Zeilennummern des Codes? zumindest die Zahl der ersten Zeile? Damit wir wissen, welche Zeile was problem.
Wenn _pack_struct ist eine Abkürzung von "packet-Struktur", ich würde davon abraten damit es nicht verwechselt wird mit "gepackten Struktur", das ist eine andere Sache.

InformationsquelleAutor dccharacter | 2013-01-07

Schreibe einen Kommentar