c - lambda - 在C中,理解宏

  显示原文与译文双语对照的内容

我在github上發現了這段代碼,但是不完全理解它:


#define lambda(ret_type, _body) ({ ret_type _ _body _; })



然後:


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



#define內部的下劃線是什麼,它如何返回函數指針?

时间:

我在github上發現了這段代碼,但是不完全理解它:


#define lambda(ret_type, _body) ({ ret_type _ _body _; })



然後:


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



#define內部的下劃線是什麼,它如何返回函數指針?

...