OT: c: mismatched comparison
Miroslav Mraz
mrazik na volny.cz
Pondělí Červenec 29 21:10:04 CEST 2024
Smysl to dává když si uvědomíte, že C je poměrně jednoduchý jazyk.
Zřejmě se rozhodli, že je lepší udělat celou aritmetiku nad "užšími"
typy jako nativní int než se trápit se skutečnou šířkou typu. Následné
"zúžení" typu pak vlastně není nic proti ničemu, jazyk se o přetečení
nestará, maximálně překladač vyhodí varování.
Ono si to uvědomíte, když si tu aritmetiku začnete psát v C++, tedy
vytvoříte si např. pro byte vlastní třídu. Pak je to přesně podle vašich
představ, ale za cenu toho, že musíte napsat spoustu přetížení pro
všechny použité operátory, což je spousta celkem zbytečné práce navíc.
Zase to může být přehlednější a režie by se taky zvětšit neměla.
Mrazík
On 29. 07. 24 20:24, Miroslav Draxal wrote:
> Smysl to dává, jenom mě osobně nedává smysl, jak unt8_t může přetéct do uin16_t. Mě by spíš dávaly smysl, když mám proměnnou definovanou jako uint8_t tak ať s ní udělám cokoli, stále je to uint8_t. Přetéct by to mohlo až při přetypování na int16_t.
> Ale svět na to nahlíží jinak.
>
> Míra
>
>
Další informace o konferenci Hw-list