Re: Problém s C kompilátorem nebo mezi klávesnicí a židlí?
Jakub Ladman
ladmanj na volny.cz
Neděle Červenec 7 20:18:27 CEST 2019
Lepší dočíst trochu dál ...
Dne 07. 07. 19 v 20:03 Jindroush napsal(a):
> Nedocetl jsem, ale hned se zeptam:
> if(length/0x100)
> biboch = 0x100;
> else
> biboch = length%0x100;
>
> data[3] = (biboch & 0xff);
>
> Je vam jasne, ze v pripade, ze length >= 0x100, bude v data[3] vzdy 0?
Hw je úplně blbý, a neumí poslat 0 bajtů, jen 1 až 256 a kolik toho má
poslat se mu říká právě jedním bajtem.
Tedy 0 znamená 256
Při prvním průchodu, když length je >= 0x100 bude data[3] = 0, ale po
načtení prvního balíku dat se do stejného místa dostanu s length
zmenšeným o těch 0x100 a pak nakonec mi zbyde poslední paket, který bude
kratší než 0x100 a pro něj bude data[3] nenulové.
Možná je tam někde nějaká jiná chyba, ale vzhledem k tomu že mám vypnuté
optimalizace by mi to samovolně nemělo proměnnou vynulovat když vlezu do
while smyčky.
Nebo jo? Napadá mě, že to je nějaká bezpečnostní featura, ale spíš mi
přijde že to je blbost.
BTW: když je proměnná static, tak je to ok.
J.
Další informace o konferenci Hw-list