При реализации меню во встроенной системе на C(++) (AVR-Gcc) я получил указатель на функцию void, который принимает аргументы и обычно их использует.
// void function prototype
void (*auxFunc)(char *);
В некоторых случаях (на самом деле довольно много) функция на самом деле не нуждается в аргументе, поэтому я бы сделал что-то вроде:
if (something) doAuxFunc(NULL);
Я знаю, что могу просто перегрузить функцию другим типом, но на самом деле я стараюсь этого не делать, так как создаю экземпляры нескольких объектов и хочу, чтобы они были легкими.
Является ли вызов нескольких функций с указателями NULL (когда они предназначены для фактического указателя) хуже, чем реализация многих других прототипов функций?