zeiger



  • Ich möchte einen Zeiger auf ein Byte in einem String definieren.
    unsigned char system[8];
    unsigned char *status = &system[5];
    kein Problem, aber wie bekommt man folgendes hin

    If ((*status&0x80)==1) ; //Bit 7 in system[5] = 1 (im Status ist error
    gesetzt)
    soll wie folgt aussehen
    If (*status.error)
    Ich kann eine Structur declarieren
    struct
    {
    unsigned L1 :1;
    unsigned L2 :1;
    unsigned L3 :1;
    unsigned batt_kapp :1;
    unsigned batt_kurz :1;
    unsigned :2;
    unsigned error :1;
    }status = 0;
    Habe so aber kein arry, sondern nur BYTE.



  • So würds gehen. Da brauchst du keinen Zeiger.

    typedef struct 
    { 
    unsigned L1 :1; 
    unsigned L2 :1; 
    unsigned L3 :1; 
    unsigned batt_kapp :1; 
    unsigned batt_kurz :1; 
    unsigned :2; 
    unsigned error :1; 
    }state;
    
    ...
    
    unsigned char system[8]; 
    state status;
    
    ...
    
    status = system[5];
    If (status.error)
    ...
    

Anmelden zum Antworten