void set_default(t_fdf *data, char **av)
{
read_map(data, av[1]); *-> dont care this func*
if (data->map_size <= 500)
{
data->window_x = 960;
data->window_y = 540;
data->zoom = 30;
data->depth = 2;
}
else if (data->map_size <= 3000)
{
data->window_x = 1280;
data->window_y = 720;
data->zoom = 20;
data->depth = 15;
}
else if (data->map_size <= 5000)
{
data->window_x = 1366;
data->window_y = 768;
data->zoom = 20;
data->depth = 10;
}
else if (data->map_size <= 10000)
{
data->window_x = 1600;
data->window_y = 900;
data->zoom = 10;
data->depth = 5;
}
else
{
data->window_x = 1720;
data->window_y = 900;
data->zoom = 5;
data->depth = 4;
}
}
我想缩短这段代码。我可以创建一个额外的函数。但这个函数是禁止采取超过4个参数。我需要到地方的值 根据Map的大小变化到我的数据中。
1条答案
按热度按时间lsmepo6l1#
例如,定义
t_fdf
类型的struct
数组:然后你可以将数组的单个成员赋给指针,就像GNU的
getopt_long
函数的工作原理一样。您可能会从以下有关函数的更多信息中受益:https://linux.die.net/man/3/getopt_long