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 |