Kan jemand noch etwas hierzu sagen?

Folgendes Program (etwas symbolisch).
Da laufen einige interrupts im Hintergrund.

  • unsigned char MeinArray[20];
    unsigned char MeinIndex;
    unsigned char MeinVar;

    main(){

    MeinIndex=12;
    MeinVar=MeinArray[MeinIndex];

    switch(MeinVar){
    }

    }

Die Wert in MeinVar ist nicht immer stabiel.
Die Variabelen werden NICHT vom Interrupt Functionen benutzt.

Wenn alle Variabelen wie
- global und volatile
oder
- local und static
deklariert werden laufts ohne Probleme.

Wie ist dass zu erklaren?

(Oder gibts hier ein bug im gcc.exe compiler???, da werde ich immer mehr archwohnisch)

gruss

Henk