Я работаю над кодом, который записывает вывод в разные потоки / файлы в зависимости от того, какая функция семейства вызывается пользователем. Я пытаюсь сделать это как можно более кратко и не иметь тонны неиспользованной информации в структуре, которую я использую для вызова реальной функции записи. В настоящее время у меня есть базовая структура (это просто черновик):
typedef int (*Write_Out) (char *src, size_t len);
typedef struct s_vas_info
{
char **ret;
int prev_size;
} t_vas_info;
typedef struct s_vd_info
{
int fd;
} t_vd_info;
typedef struct s_vf_info
{
FILE *fp;
} t_vf_info;
typedef struct s_vsn_info
{
size_t size;
char * restrict str;
} t_vsn_info;
typedef struct s_writer
{
int curr;
Write_Out ft_write;
} t_writer;
Где Write_Out будет указывать на функцию, которая отправляет вывод в нужное место назначения, t_writer будет хранить всю информацию для этого идругие структуры используются при вызове соответствующей функции. Теперь мне бы очень хотелось, чтобы у типа s_writer был еще один член, содержащий один из других типов структуры (напрямую, если это возможно, я не собираюсь решать эту проблему с помощью указателей и приведений, если их вообще можно избежать). Я довольно новичок в этом, поэтому я не знаю, возможно ли это (с этими или другими типами данных). Любая помощь будет оценена!