Здравствуйте, damiryaka, Вы писали:
D>И слава богу, что не Си. я боюсь подумать как поведёт себя программа на Си после выполнения любого из вызовов:
D>printf("%c %c", '+', +'+'); D>printf("%d %d", '+', +'+');
Она поведёт себя предсказуемо.
+'+' продвигает char до int.
Передача произвольного аргумента (...) тоже продвигает char до int.
Чтение char со стека с помощью va_arg тоже знает об этом — читает int, обрезает до char.