Dlaczego nie przyjęto nowych łańcuchów opcji printf () w formacie C (dostosowanych do szerokości bitów)?
Podczas badania, jak zrobić międzyplatformowyprintf()
formatuj łańcuchy w C (to znaczy biorąc pod uwagę liczbę bitów, których oczekuję od każdego argumentu liczby całkowitej)printf()
powinno być) Natknąłem sięta sekcja artykułu na Wikipediiprintf()
. W artykule omówiono niestandardowe opcje, które można przekazaćprintf()
ciągi formatowania, takie jak (co wydaje się być rozszerzeniem specyficznym dla Microsoft):
printf("%I32d\n", my32bitInt);
Dalej stwierdza się, że:
ISO C99 zawiera plik nagłówkowy inttypes.h, który zawiera wiele makr do użycia w niezależnym od platformy kodowaniu printf.
... a następnie wyświetla zestaw makr, które można znaleźć we wspomnianym nagłówku. Patrząc na plik nagłówkowy, aby go użyć, musiałbym napisać:
printf("%"PRId32"\n", my32bitInt);
Moje pytanie brzmi: czy czegoś mi brakuje? Czy to naprawdę standardowy sposób C99? Jeśli tak, to dlaczego? (Chociaż nie dziwię się, że nigdy nie widziałem kodu, który używa łańcuchów formatów w ten sposób, ponieważ wydaje się to tak kłopotliwe ...)