Pourquoi est-ce que " “%c”` existent dans `printf` si `char` est converti en int?

En C, vous avez la "%c" et "%f" formats de drapeaux pour printf- et scanffonctions similaires. Ces deux fonction de l'utilisation de la longueur variable des arguments ..., qui toujours convertir floats à doubles et chars à ints.

Ma question est, si cette conversion se produit, pourquoi faire des drapeaux pour char et float existent? Pourquoi ne pas simplement utiliser les mêmes drapeaux, pour int et double?

Liés à la question:
Pourquoi ne scanf() a besoin "%lf" pour les doubles, quand printf() est bien avec juste "%f"?

OriginalL'auteur Paul Manta | 2012-01-21