Для того что бы написать нормальный ft_printf нужно понимать структуры. Будем разбираться на понятных примерах.
Представим что мы хотим для чего нибудь хранить следующие данные:
Реализуем все это через переменные (пример специально пишу не по норме):
#include <stdio.h>
int main(void)
{
char *imac = "mi-k5";
char *claster = "mirage";
int floor = 2;
printf("iMac: %s\\nКластер: %s\\nЭтаж: %d", imac, claster, floor);
return (0);
}
Добавь запись ещё о двух компьютерах по той же схеме:
#include <stdio.h>
int main(void)
{
char *imac_1 = "mi-k5";
char *claster_1 = "mirage";
int floor_1 = 2;
char *imac_2 = "mi-t3";
char *claster_2 = "mirage";
int floor_2 = 2;
char *imac_3 = "am-d3";
char *claster_3 = "atrium";
int floor_3 = 2;
printf("iMac: %s\\nКластер: %s\\nЭтаж: %d\\n\\n", imac_1, claster_1, floor_1);
printf("iMac: %s\\nКластер: %s\\nЭтаж: %d\\n\\n", imac_2, claster_2, floor_2);
printf("iMac: %s\\nКластер: %s\\nЭтаж: %d\\n\\n", imac_3, claster_3, floor_3);
return (0);
}
Мне пришлось добавить индексы к переменным, да и вообще получилось как то громоздко.
Теперь реализуем хранение и вывод этих данных с помощью структур. Структура будет в заголовочном файле и называться маки в школе
#ifndef FT_PRINTF_FT_PRINTF_H
#define FT_PRINTF_FT_PRINTF_H
struct mac_in_school
{
char * imac;
char * claster;
int floor;
};
Эта структура как раз описывает порядок и тип данных которые мы записывали через переменные.
В данном случае mac_in_school это имя структуры, которое мы будем использовать для вызова структуры что бы в неё записывать данные.
Если мы сравниваем структуру с переменной, то struct mac_in_school равносильна char или int