小编Kis*_*ish的帖子

lambda 宏如何创建 lambda?

我在GitHub上找到了这段代码,但不是很明白:

#define lambda(ret_type, _body) ({ ret_type _ _body _; })
Run Code Online (Sandbox Code Playgroud)

然后:

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
Run Code Online (Sandbox Code Playgroud)

里面的下划线是做什么的#define,它是如何返回函数指针的?

c macros lambda gcc function-pointers

21
推荐指数
2
解决办法
1211
查看次数

标签 统计

c ×1

function-pointers ×1

gcc ×1

lambda ×1

macros ×1