Portál AbcLinuxu, 24. října 2025 14:37
#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.