Я уверен, что некоторые варианты этого вопроса уже задавались ранее, но все другие, подобные вопросы по SO кажутся гораздо более сложными, включая передачу массивов и других форм данных.Мой сценарий намного проще, поэтому я надеюсь, что есть простое / элегантное решение.
Есть ли способ, которым я могу создать анонимную функцию или передать строку кода в качестве указателя на функцию в другую функцию?
В моем случае у меня есть ряд различных операций.До и после каждой строки кода есть задачи, которые я хочу выполнить, которые никогда не меняются.Вместо дублирования начального и конечного кода, я хотел бы написать функцию, которая принимает указатель функции в качестве параметра и выполняет весь код в необходимом порядке.
Моя проблема в том, что это не стоитопределяя 30 функций для каждой операции, поскольку они представляют собой одну строку кода.Если я не могу создать анонимную функцию, могу ли я упростить свой код на C?
Если мой запрос не совсем понятен.Вот немного псевдокода для пояснения.Мой код намного более значим, чем этот, но приведенный ниже код дает точную оценку.
void Tests()
{
//Step #1
printf("This is the beginning, always constant.");
something_unique = a_var * 42; //This is the line I'd like to pass as an anon-function.
printf("End code, never changes");
a_var++;
//Step #2
printf("This is the beginning, always constant.");
a_diff_var = "arbitrary"; //This is the line I'd like to pass as an anon-function.
printf("End code, never changes");
a_var++;
...
...
//Step #30
printf("This is the beginning, always constant.");
var_30 = "Yup, still executing the same code around a different operation. Would be nice to refactor..."; //This is the line I'd like to pass as an anon-function.
printf("End code, never changes");
a_var++;
}