Re: Proè to není chyba?

Petr Labaj labaj na volny.cz
Pondělí Duben 29 22:24:52 CEST 2024


Však tady to taky hlídá.
Ale protože z nějakého důvodu mám na parametry jiné požadavky než autor 
knihovny, tak si to pěkně přetypuju.
A čtenář programu to později uvidí a zamyslí se, pokud mu to 
nepředžvýkám do komentáře.

PL

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

Dne 29.4.2024 v 22:19 Aleš Procháska napsal(a):
> Tak to by mě Pascal hnal. To si sakra hlídá, abych funkci volal s kompatibilními parametry.
>
> 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 22:12
> To: hw-list na list.hw.cz
> Subject: Re: Proè to není chyba?
>
> Může to být způsobeno například knihovnami, které jsou třeba obecné a umí pracovat v obou polovinách osy.
> Ale moje aplikace, která knihovnu používá, nikdy záporně nepojede a tak je typ proměnné  u32.
>
> PL
>
> ********************
>
> Dne 29.4.2024 v 22:06 Aleš Procháska napsal(a):
>> 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
>



Další informace o konferenci Hw-list