W standardzie C99 sekcja 7.18.4.1 "Makra dla stałych całkowitych o minimalnej szerokości", niektóre makra zdefiniowane jako [U]INT[N]_C(x)
do rzutowania stałych liczb całkowitych do najmniejszych typów danych, gdzie N = 8, 16, 32, 64. Dlaczego te makra są zdefiniowane, ponieważ mogę zamiast tego używać modyfikatorów L, UL, LL lub ULL? Na przykład, gdy chcę użyć co najmniej 32 bity bez znaku stałej liczby całkowitej, mogę po prostu napisać 42UL
zamiast UINT32_C(42)
. Ponieważ długi typ danych ma co najmniej 32 bity szerokości, jest również przenośny.Jaki jest cel "Makr dla stałych całkowitych o minimalnej szerokości"
Jaki jest cel tych makr?
Myślę, że są tak, że nie musisz się martwić o takie rzeczy, jak duże "int" lub "długie" podczas tworzenia własnych typów stałych liczb całkowitych. –