konstantes Array anlegen



  • Servus,

    man möchte ein konstantes Array zur Verfügung stellen. Zwei Versuche habe ich gemacht.

    const unsigned char img[4] = {0x01, 0x02, 0x03, 0x04};	// in img.c
    extern unsigned char img[];	// in img.h
    func(img);	// Aufrufen
    


    => Das Array wird nicht korrekt übergeben obwohl Kompilierung erfolgt.

    const unsigned char img[4] = {0x01, 0x02, 0x03, 0x04};	// in img.h
    func(img);	// Aufrufen
    


    =>In Ordnung.

    Kann mir jemand erklären, warum das so ist?

    Ciao
    blanc



  • Was soll heißen "wird nicht korrekt übergeben"?
    Was soll heißen "In Ordnung"?

    Gehe davon aus, dass der Compiler alles richtig macht und der Fehler bei dir liegt, insbesondere weil du offensichtlich in Header-Dateien Definitionen vornimmst, was auf mangelnden Überblick schließen lässt.



  • blanc schrieb:

    const unsigned char img[4] = {0x01, 0x02, 0x03, 0x04};	// in img.c
    extern unsigned char img[];	// in img.h
    func(img);	// Aufrufen
    


    => Das Array wird nicht korrekt übergeben obwohl Kompilierung erfolgt.

    Das sind ja auch unterschiedliche Typen - die Deklaration hat das const unterschlagen.



  • Hier habe ich gemeint, die Parameter sind irgendwas, aber nicht wie definiert.

    Soll ich lieber

    extern const unsigned char img[];    // in img.h
    

    im Header schreiben?

    Ciao
    Blanc


Log in to reply