Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[c][c18] - Dostęp do zmiennej w bibliotece

17 Lis 2012 22:27 987 8
  • Poziom 13  
    W pewnej bibliotece w pliku C znajduje się zmienna tablicowa o takiej definicji:

    Code:
    char8x8 font6x8[] = { ... }; 


    W pliku H jest tylko

    Code:
    typedef const rom unsigned char char8x8[8];


    Czy jest możliwość aby z poziomu maina odnieść się do tablicy font6x8? Potrzebuje wskaźnika do niej. Gdzie go zdefiniować?

    Docelowo wskaźnik ten ma być przekazywany jako parametr funkcji (zdefiniowanej w bibliotece) a wywoływanej w main.
  • Poziom 42  
    tak w pliku *.h tej biblioteki daj DEKLARACJĘ tej zmiennej:

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 13  
    Niestety takie rozwiązanie nie działa (próbowałem go już dawno) chyba że ZDEFINIUJE całą tą zmienną/stałą w pliku main (łącznie 128 wierszy kodu!).

    Jakieś inne pomysły? Przypomninam że to C18 Microchipa...
  • Użytkownik usunął konto  
  • Poziom 13  
    Nie sądze że to wina Microchipa. Nie bez powodu pisze w C18... Bedę jeszcze badał temat i dam znać.
  • Poziom 27  
    Tak jak Ci mirek napisał to coś musi działać, widocznie coś robisz źle.
  • Poziom 42  
    mirekk36 napisał:
    tak w pliku *.h tej biblioteki daj DEKLARACJĘ tej zmiennej:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    zrobiłem mały błąd (przepraszam) - już się poprawiam:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    bo z tym = to wyszła DEFINICJA a nie deklaracja, ale sens/idea pozostaje ta sama, tzn utworzenie deklaracji w *.h
  • Poziom 27  
    No i dzięki mojemu głupiemu potwierdzeniu mirek36 odnalazł błąd.
  • Poziom 13  
    Tak też występowały problemy. Dodam jeszcze że sporo zależy od samego środowiska! (W mplab X dodawanie bibliotek jest niemal bezproblemowe a w 8.8 cuda się dzieją przy tym samym kodzie).