Re: Proè to není chyba?

Petr Labaj labaj na volny.cz
Pondělí Duben 29 21:10:12 CEST 2024


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
>>



Další informace o konferenci Hw-list