Я бы сделал два макроса, например:
#define STYPE_FMT "%d %f"
#define STYPE_MEMS(s) (s).a, (s).b
Затем вы можете сделать что-то вроде:
printf("hello %s, stype: " STYPE_FMT "\n", "world", STYPE_MEMS(my_s));
Что делает этот подход превосходящим «функцию печати» дляструктура состоит в том, что вы можете использовать макросы с любыми функциями printf
-семейства, которые вам нравятся, и комбинировать печать других данных.
Вы можете стать еще интереснее и вместо этого сделать:1012 * и затем вы можете использовать точность по умолчанию или выбрать пользовательскую точность.