Znalazłem ten fragment kodu na GitHub, ale nie do końca go zrozumiałem:
#define lambda(ret_type, _body) ({ ret_type _ _body _; })
Następnie:
int (*max)(int, int) = lambda(int,
(int x, int y) {
return x > y ? x : y;
});
int max_value = max(1, 2);
// max_value is 2
Co robią podkreślenia wewnątrz #define
i jak zwraca wskaźnik funkcji?
gcc -E
), aby zobaczyć, co on robi?