Re: Problém s C kompilátorem nebo mezi klávesnicí a židlí?
Jindroush
jindroush na seznam.cz
Neděle Červenec 7 20:33:13 CEST 2019
Co se stane, kdyz prehodite biboch, aby v deklaracich bylo prvni?
uint16_t biboch;
uint8_t data[4];
uint8_t *output = membuf+addr;
uint16_t bytes_avail;
uint8_t *temp;
uint8_t len;
On 07.07.2019 20:18, Jakub Ladman wrote:
> 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.
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list at list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
--
Jindroush <jindroush at seznam.cz>
Další informace o konferenci Hw-list