C dilinde işlev ifadeleri kullanmak mümkün müdür?C, işlev ifadelerini destekliyor mu?
void print_line(char *data) {
printf("%s\n", data);
}
// print all elements in my_list
list_foreach(&my_list, print_line);
Ben artık şöyle bir şey yapmak istiyorum:
list_foreach(&my_list, void (char *data) {
printf("%s\n", data);
});
C mümkün böyle bir şey var mı Örneğin, ben (main
işlev içinde) aşağıdaki kod parçacığını var?
Beni yanlış anlamayın, ama bu yüzden C++ 'yı seviyorum, bu size C'den daha ucuz bir fiyat verir! – AraK
@AraK: C'den daha ucuz fiyat için? Burada "ucuz" ne anlama geliyor? C++ yolu muhtemelen daha yavaş, değil mi? – thejh
Daha ucuz burada derleyicinin maksimum performansı elde etmek için soyutlamayı daraltabildiği anlamına gelir. Örneğin, fonksiyon göstergelerinin kullanımıyla bir functor (veya lambda) kullanımını karşılaştırın. Takma adlandırma özelliği, kodun en iyi şekilde üretilmesinde yardımcı olmaz. – AraK