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
ここで値段が安いということは、コンパイラが最大限のパフォーマンスを得るために抽象化を崩壊できることを意味します。たとえば、関数ポインタを使用して、ファンクタ(またはラムダ)の使用を比較します。エイリアシングを導入しても、最高のコードを作成するのにはあまり役に立ちません。 – AraK