logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[c]Zmienna o adresie rejestru w AVR

Ashures 04 Gru 2011 14:00 938 3
  • #1 10216926
    Ashures
    Poziom 10  
    Witam,

    przewertowałem już kilka tematów i specyfikację avr-gcc ale nie znalazłem odpowiedzi na moje pytanie.
    Mianowice czy da się w jakiś sposób zrobić aby zmienna (nie wskaźnik) w strukturze
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    odpowiadała adresowi np. 0x1B (PORTA w Atmega32).
    Wiem że taki efekt można uzyskać za pomocą wskaźników w bardzo łatwy sposób
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    ale ze względów praktycznych wolał bym z nich nie korzystać.

    Z góry dziękuje za pomoc.
  • #2 10219169
    czyngis
    Poziom 11  
    jeżeli boisz się, że przypiszesz jakiś inny adres wskaźnikowi, dodaj słowo kluczowe const

    np.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #3 10219759
    Ashures
    Poziom 10  
    Nie do końca mnie zrozumiałeś ;)

    W moim założeniu chciał bym uzykać efekt:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    czyli mówiąc ogólnie jak zmusić kompilator aby etykieta zmiennej pa miała adres w pamięci równy 0x1B. Nie jest to związane z kwestią obawy przed zmianą wskaźnika, bardziej z koniecznością korzystania z operatora wyłuskania - nie potrzebne wprowadzanie nieładu w kodzie.

    Czyż:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    nie wygląda ładniej niż:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    .
REKLAMA