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

Tablica struktury C/AVR

tomhandyman 03 Wrz 2008 17:27 4624 8
REKLAMA
  • #1 5503002
    tomhandyman
    Poziom 13  
    Witam,
    czy poniższy kod ma szansę funkcjonować, kompiluje się bez błędu w Codevision. Dla tych rzeczy zostawiłem Bascom i w C dopiero zaczynam.
    
    struct ram_structure  {
                 char a,b;
                 int  c;
                 char d[30],e[10];
                 } sr;
    struct ram_structure xxl[10];
    


    Czy w taki sposób mogę rzeczywiście uzyskać tablicę 10 elementową xxl o elemencie w postaci "ram_structure"?
  • REKLAMA
  • Pomocny post
    #2 5503046
    bobbyAIR
    Poziom 20  
    Jasne że tak, możesz też zdefiniowac własny typ
    
    typedef struct ram_structure  {
                 char a,b;
                 int  c;
                 char d[30],e[10];
                 } sr;
    sr xxl[10]; 
    
  • #3 5503149
    tomhandyman
    Poziom 13  
    Dzięki za szybką odpowiedź.
    Nie wiem czy mnie dobrze podałem przykład, z samą tablicą jedno i dwuwymiarową nie mam problemu, natomiast z tablicą w której elementem jest struktura w skład której wchodzi kilka zmiennych.
    nie jest prawidłowym zapisem ponieważ "sr" odnosi się tylko do lokalizacji danej struktury. To jest przykład z helpa z Codevision.

    /* Global structure located in RAM */
    struct ram_structure {
                 char a,b;
                 int  c;
                 char d[30],e[10];
                 char *pp;
                 } sr;
    
    
    /* Global constant structure located in FLASH */
    flash struct flash_structure {
                 int  a;
                 char b[30], c[10];
                 } sf;
    
    
    /* Global structure located in EEPROM */
    eeprom struct eeprom_structure {
                 char a;
                 int  b;
                 char c[15];
                 } se;
    
    
    void main(void) {
    /* Local structure */
    struct local_structure {
                 char a;
                 int  b;
                 long c;
                 } sl;


    Są to struktury pojedycze, a ja chciałbym ich uzyskać kilkadziesiąt np:
    struct ram_structure xxl[10];
    gdzie mam do dyspozycji po dziesięć każdego elementu z wewnątrz struktury.I jak się do tych zmiennych w strukturze, która jest w tablicy odwoływać.
  • REKLAMA
  • #4 5503199
    bobbyAIR
    Poziom 20  
    Kod
    jest prawidłowy jeśli typ nazwiesz sr poprzez typedef. Jeśli to słowo jest zarezerwowane można uzyć innego. Zresztą nazwy struktury też mozna żeby nie mieszać i nie grzebać za wiele w skruptach linkera
  • #5 5503222
    tomhandyman
    Poziom 13  
    Sorki, nie zauważyłem "typedef" w Twojej odpowiedzi (przyćmienie umysłu), zaraz to sprawdzam.
    W jaki sposób mogę wprowadzać dane i je czytać?
  • Pomocny post
    #6 5503270
    rrata
    Poziom 19  
    Do składowych dostajesz się przy pomocy kropki. U ciebie byłoby np. tak:
    xxl[4].a = 23;
    xxl[6].d[23] = 225;
    int temp;
    temp = xxl[1].d[12];
    Zamiast liczb w nawiasach kwadratowych, możesz wstawić zmienne i np. operować na danych w pętli.
  • REKLAMA
  • #7 5503292
    tomhandyman
    Poziom 13  
    Jakie to wszystko proste, o ile ktoś udzieli podpowiedzi.
    Dzięki koledzy za pomoc. Powinienem dalej już sobie poradzić.
  • REKLAMA
REKLAMA