In cplusplus.com reference for printf vedo una specifica per una formattazione "lunghezza", ma include la nota:C++ Supporto per Specifiers lunghezza
gialle righe indico progettisti e sub-committenti introdotte dal C99. Vedere
<cinttypes>
per gli specificatori per i tipi estesi.
La mia domanda riguarda specificamente la formattazione della lunghezza hh
. Ed è una riga "gialla". La formattazione con hh
si comporta come previsto in Visual Studio, ma mi chiedo se sia perché Visual Studio è anche compilatore C o perché hh
effettivamente supportato da C++?
[ 'std :: printf'] (http://en.cppreference.com/w/cpp/io/c/fprintf) è completamente supportato e generalmente segue lo standard C. Non che ti raccomando di usarlo, perché ne hai bisogno in C++, dove hai lo std :: cout sicuro dal tipo che non ha bisogno di questi suggerimenti di formattazione? –
Poiché le stringhe del formato printf sono interpretate in fase di runtime, la chiamata non può fallire la compilazione. Naturalmente, molti compilatori tentano di emettere avvisi su stringhe di formato errate e si potrebbe fare riferimento all'assenza di tale avviso. La gestione di hh dipende dall'implementazione della libreria standard. – rici
@rici Questo è un punto eccellente. So che la stringa di formato è interpretata in fase di esecuzione, ma spesso la dimentico. Modificherò la domanda. –