Можно ли использовать выражения функций в C? Например, у меня есть следующий фрагмент кода (внутри функции main
):Поддерживает ли C выражения функции?
void print_line(char *data) {
printf("%s\n", data);
}
// print all elements in my_list
list_foreach(&my_list, print_line);
я хотел бы сделать что-то вроде этого, вместо:
list_foreach(&my_list, void (char *data) {
printf("%s\n", data);
});
ничего подобного, что возможно в C?
Не поймите меня неправильно, но именно поэтому я люблю C++, это дает вам это и многое другое по более низкой цене, чем C! – AraK
@AraK: Для более дешевой цены, чем C? Что здесь означает «дешевле»? Возможно, путь C++ медленнее, нет? – thejh
Дешевле здесь означает, что компилятор способен свернуть абстракцию, чтобы получить максимальную производительность. Сравните, например, использование функтора (или лямбда) с использованием указателей функций. Введение aliasing не очень помогает в создании лучшего кода. – AraK