【发布时间】:2012-04-13 18:29:07
【问题描述】:
是否可以在 C 中使用函数表达式?比如我有如下代码sn-p(在main函数里面):
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:价格比 C 便宜?这里的“便宜”是什么意思? C++ 的方式可能更慢,不是吗?
-
这里更便宜意味着编译器能够折叠抽象以获得最大性能。例如,比较仿函数(或 lambda)的使用与函数指针的使用。引入别名对产生最好的代码没有多大帮助。
标签: c syntax functional-programming