RE: Proè to není chyba?

Aleš Procháska ales.prochaska na divesoft.com
Pondělí Duben 29 22:06:19 CEST 2024


Jj, to chápu. Jen nevím, proč by se měl přetypovávat signed na unsigned (myslím by design, ne když se chci vlámat do nějakého cizího systému). Podle mě když má někdo v programu potřebu přiřadit unsigned do signed, tak má chybu v analýze.

Aleš Procháska

-----Original Message-----
From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Petr Labaj
Sent: Monday, 29 April, 2024 21:10
To: hw-list na list.hw.cz
Subject: Re: Proè to není chyba?

Tak pro mě je to upozornění, že se mám zamyslet.
Pokud přetypovávám třeba signed na unsigned, tak jestli to nemůže mít nějaký vedlejší efekt (třeba že se ze záporného čísla stane strašně velké kladné).
Pokud zmenšuju třeba z u32 na u16 tak zase jestli nemůžu přetéct atd.
A když čtu cizí nebo svůj starý program tak pobídka k zamyšlení, proč to ten autor udělal.
Jestli je to jen technikálie (že ve standardních headerech má třeba nějaká funkce typ "int", ale já z toho chci jen kladná čísla a tak používám u32 - ale proč autor použil s32 a já u32?).
Nebo jestli to může mít nějaký hlubší význam.

V dobře napsaném programu zase tolik těch přetypování (které by opravdu neměly nějaký hlubší význam) není.

Proto taky zásadně neignoruju žádné warningy a používám důsledné nastavení generování warningů.
A zásadně používám typy s explicitní délkou. Tedy u8 až u64, s8 až s64.
Ne nějaké ty obecné char, int, long atd., kde to může být na různých platformách realizováno různě.

PL

**********************

Dne 29.4.2024 v 20:49 Aleš Procháska napsal(a):
> To je právě to co nevím k čemu je dobré. V jazyce se statickými formálními typy (Pascal) se vlastně nikdy k přetypování nedostanu. Výjimka jsou návaznosti na jiné jazyky, třeba ve windows si horní půlku dolní půlky parametru musím přetypovat na word ve kterém je uložený signed int, ale takováhle zvěrstva umí nakonec asi každý jazyk.
>
> Aleš Procháska
>
> -----Original Message-----
> From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Petr Labaj
> Sent: Monday, 29 April, 2024 14:30
> To: hw-list na list.hw.cz
> Subject: Re: Proè to není chyba?
>
> Vím, že jste to napsal jako záměrnou nadsázku.
> Ale dovolím si poznámku.
>
> Já přetypování beru jako klad. Když čtu třeba svůj starý program, tak mi to informačně pomáhá, že tady se něco musí přetypovat, tak se asi v tím pracuje jinak než obvykle a je tady dobré se zamyslet proč.
> Na rozdíl od toho, kdyby to fungovalo samo automaticky.
>
> Je to až divné. Na mnohém v životě vidím spoustu nedostatků a říkám, že takhle mi to nevyhovuje.
> Ale zrovna jazyk C (nikoli už C++) je třeba pro mě něco, kde prostě nevidím chybu. Že kdybych to uměl a navrhoval bych to já, tak bych to udělal přesně takhle.
> Prostě skutečná láska, taková jako je jinak snad jen v pohádkách.
>
> PL
>
> ******************
>
> Dne 29.4.2024 v 11:14 Aleš Procháska napsal(a):
>> A důsledek těch hacků je, že C je ukecaný jazyk kde se pořád něco 
>> přetypovává, referencuje, dereferencuje a memcpyuje a lepší to 
>> nebude, protože si všechnu syntaktickou munici vystřílel na naprosto 
>> marginální konstrukce 😃
>>
>> Aleš Procháska
>>

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list