Я думаю, что некоторые более новые языки, такие как JS, могут делать это изначально, но я забыл термин для этого (сделайте «временную» функцию встроенной, чтобы передать как обратный вызов)
То, что я хочу сделать, это ...
Я пишу модульные тесты, где я устанавливаю ожидаемые сообщения ввода и вывода во время компиляции. Позже во время выполнения я хочу выполнить некоторые проверки при получении каждого вывода или обработке ввода, поэтому я добавил параметр для функции обратного вызова.
Это работает нормально, и я могу оставить это и двигаться дальше, но ... Мне просто любопытно ...
иногда функция излишня, и мне просто нужно одно сравнение; когда-нибудь небольшой блок кода будет делать. Возможно, я мог бы просто оценить их как нулевое / ненулевое значение во время выполнения? Но как передать в качестве параметра?
На данный момент моя функция имеет следующую подпись
void AddExpectedCommand(E_peripheralType peripheral,
communicationBlock_t commandBlock,
errorMessage_t errorMessage,
void *(*DoRunTimeChecks)(E_boolean));
где последний параметр - указатель на функцию обратного вызова, возвращающую логическое значение.
Можно ли как-нибудь вместо этого передать выражение кода в качестве параметра?
Или функция кажется "чище"?
Заранее спасибо за любую помощь ...
Обновление: упс, я неправильно понял свое заявление. Я хочу передать указатель на функцию, которая не имеет параметров и возвращает e_Boolean ... как мне это сделать?