Portál AbcLinuxu, 1. května 2025 11:24
#include <stdio.h> static struct { int day; int month; int year; } date = { 4, 8, 2020 }; int main(){ printf("year: %d\n", date.year); return 0; }
Tiskni
Sdílej:
Asi by měla následovat anketa, co tím autor vlastně myslel. :-)
nepoužívat signed proměnné pro hodnoty, které jsou z definice unsignedTak tady to fakt hrozně vadí, přetečení iminentní.
X < Y
" nebo "A ? X : Y
", je-li X
signed a Y
unsigned nebo naopak, případně je-li to ještě zpestřeno různou velikostí těch proměnných. Podobně bohorovný přístup často končí bezpečnostními chybami.
nekombinovat deklaraci struktury jako typu s deklarací proměnné toho typu👍
všecko co se jako zkompiluje je správně :D :D ;D ;D
A jak by sis jako v C představoval datovou strukturu, která by sama o sobě řešila validitu dat? Jako jednoduchá datová reprezentace datumu je to naprosto ok, pro "bezpečnou" práci s tou strukturou pak můžeš mít nadefinované funkce, které dělají potřebné kontroly.
Co se týče té "přímé inicializace", tak tohle se v C zcela běžně záměrně používá, pokuď se definovaná struktura (běžně se spíš jedná o pole struktur) použije v daném modulu přesně 1x.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.