Durante la ricerca su come eseguire le stringhe di formato multipiattaforma printf()
in C (ovvero, tenendo conto del numero di bit che mi aspetto che ogni argomento intero su printf()
debba essere), ho trovato this section of the Wikipedia article on printf()
. L'articolo discute opzioni non standard che possono essere passati al printf()
stringhe di formato, come ad esempio (quello che sembra essere un estensione di Microsoft-specifico):Perché non sono state utilizzate stringhe di opzione di formato printf() nuove (larghezza del bit) come parte di C99?
printf("%I32d\n", my32bitInt);
E prosegue affermando che:
ISO C99 include il file inttypes.h di intestazione che include un numero di macro da utilizzare nella codifica di stampa indipendente dalla piattaforma .
... e quindi elenca un set di macro che è possibile trovare in tale intestazione. Guardando il file di intestazione, per usarli dovrei scrivere:
printf("%"PRId32"\n", my32bitInt);
La mia domanda è: mi manca qualcosa? Questo è davvero il modo standard C99 per farlo? Se è così, perché? (Anche se non mi sorprende che non abbia mai visto il codice che utilizza le stringhe di formato in questo modo, dal momento che sembra così ingombrante ...)
Uno svantaggio: chiamare C dal montaggio. –