¿Es posible usar expresiones de función en C? Por ejemplo, tengo el siguiente fragmento de código (dentro de la función main
):¿C soporta expresiones de función?
void print_line(char *data) {
printf("%s\n", data);
}
// print all elements in my_list
list_foreach(&my_list, print_line);
me gustaría hacer algo como esto en su lugar:
list_foreach(&my_list, void (char *data) {
printf("%s\n", data);
});
se parece en algo que es posible en C?
No me malinterpreten, pero es por eso que me encanta C++, ¡esto le da esto y más por un precio más barato que C! – AraK
@AraK: ¿Por un precio más bajo que C? ¿Qué significa "más barato" aquí? La forma de C++ es probablemente más lenta, ¿no? – thejh
Más barato aquí significa que el compilador puede colapsar la abstracción para obtener el máximo rendimiento. Compare, por ejemplo, el uso de un funtor (o lambda), con el uso de indicadores de función. La introducción de alias no ayuda mucho a producir el mejor código. – AraK