C: co lze očekávat

Miroslav Draxal evik na volny.cz
Pondělí Srpen 29 12:22:54 CEST 2016


Dobrý den,

Minulý týden jsem zde dával report o pnou předpokládané chybě c XC8. Nějak v
tom tápe i Michrochip. Mám dojem, že na tam mají zaměstnaného studenta,
který filtruje zprávy. Jednou píše že je to OK, jednou že je to chyba. Co na
to zdejší odborníci na C. O co jde.

 

Mějme následující kód.

 

char arrayA[3]@0x123;

char x;

x = 0;

 

    x--; // x=0xff

    if ( arrayA[x + 1]) {....}

 

z jaké adresy má brát if prvek z pole array? Jedná se mi o ten konstrukt
x+1. X je char, čili přeteče na 0x00. Má ukazovat na  0x123 nebo má brát
konstrukt arrayA[x + 1]) přetečení a ukazovat na 0x223?

 

U XC8 to teď to je tak, že pokud je array uloženo na 0x023 tak toto ukazuje
na adresu 0x023 a pokud je array uloženo na 0x123 tak to ukazuje na adresu
0x223.

 

Jak to tedy je?

Míra

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160829/9f3ce318/attachment.html>


Další informace o konferenci Hw-list