Knihovny stdarg.h a limits.h
Knihovna stdarg.h
Tato knihovna slouží funkcím s proměnlivým počtem argumentů. Popis maker, které obsahuje a jejich použití je probráno v kapitole o proměnlivém počtu argumentů.
Funkce vprintf()
Funkce vprintf()
dělá to samé co printf()
,
jen má trochu jiné argumenty.
Tahle funkce se vám bude hodit, když budete chtít
napsat podobnou funkci jako printf()
s proměnlivým počtem argumentů.
Výstup v programu:
*********************************** * Hello world! 0.33333 * ***********************************
Existují ještě funkce vsprintf()
a vsnprintf()
,
které jsou obdobou funkcí sprintf() a snprintf().
Knihovna limits.h
Knihovna <limits.h> obsahuje makra určující rozsah hodnot
celočíselných datových typů. Tyto makra lze použít i v
preprocesoru pro
podmíněný překlad, jinak se nejčastěji používají v podmínkách programu. Hodnoty, které vidíte v tabulce,
jsou jen orientační a v různých implementacích překladačů se liší
(jinak by snad ani neměli význam). Například INT_MAX je pro
16bitové překladače 32767 a pro 32bitové 2147483647. Makra
začínající písmenem U
jsou pro čísla unsigned (čísla bez znaménka,
např UINT_MAX. Jde vždy o hodnotu MAX, protože MIN je u čísel bez
znaménka pochopitelně 0 (např. UINT_MIN není definováno)).
Makro | Hodnota | Význam |
---|---|---|
CHAR_BIT | 8 | Počet bitů v datovém typu char. |
SCHAR_MIN | -128 | Minimální hodnota typu signed char (typ char se znaménkem). |
SCHAR_MAX | 127 | Maximální hodnota typu signed char |
UCHAR_MAX | 255 | Maximální hodnota typu unsigned char |
SHRT_MIN | -32768 | Minimální hodnota typu signed short int (krátké celé číslo se znaménkem) |
SHRT_MAX | 32767 | Maximální hodnota typu signed short int |
USHRT_MAX | 65535 | Maximální hodnota typu unsigned short int |
INT_MIN | (-INT_MAX -1) | Minimální hodnota typu signed int |
INT_MAX | 2147483647 | Maximální hodnota typu signed int |
UINT_MAX | 4294967295U | Maximální hodnota typu unsigned int |
LONG_MAX | 2147483647L | |
LONG_MIN | (-LONG_MAX - 1L) | |
ULONG_MAX | 4294967295UL |