История изменений
Исправление firkax, (текущая версия) :
Структуры делают там где вызывающий код и так длинный и иначе (без именованных аргументов) легко запутаться. Если функция с всего несколькими аргументами и ты сделаешь структуру то юзерам твоей библиотеки придётся делать кучу обёрток, вся суть которых - разложить аргументы по полям структуры и вызвать твою штуку. Потому как писать
struct args3 s;
s.a = 1;
s.b = 2;
call_by_index(3, &s);
call_by_index(3, 1, 2);
А вообще такие индексированные вызовы без веских причин делать не надо.
Исправление firkax, :
Структуры делают там где вызывающий код и так длинный и иначе (без именованных аргументов) легко запутаться. Если функция с всего несколькими аргументами и ты сделаешь структуру то юзерам твоей библиотеки придётся делать кучу обёрток, вся суть которых - разложить аргументы по полям структуры и вызвать твою штуку. Потому как писать
struct args3 s;
s.a = 1;
s.b = 2;
call_by_index(3, &s);
call_by_index(3, 1, 2);
Исходная версия firkax, :
Структуры делают там где вызывающий код и так длинный и иначе (без именованных аргументов) легко запутаться. Если функция с всего несколькими аргументами и ты сделаешь структуру то юзерам твоей библиотеки придётся делать кучу обёрток, вся суть которых - разложить аргументы по полям структуры и вызвать твою штуку. Потому как писать
s.a = 1;
s.b = 2;
call_by_index(3, &s);
call_by_index(3, 1, 2);