前提:GNU C语法
实现:
1.定义宏
#define lambda(RType, Body) ({ RType __fn__ Body; __fn__; })
2.例子
#include <stdio.h>
#define lambda(RType, Body) ({ RType __fn__ Body; __fn__; })
void baz(void(*fn)(int),int x)
{
fn(x);
}
void foo(int x)
{
baz(lambda(void,(int x){printf("lamda:%d\n",x);}),x);
}
int main() {
foo(100);
return 0;
}
使用宏定义实现C语言中的lambda表达式
本文介绍了如何在C语言中利用宏定义创建类似lambda表达式的功能。通过#define lambda(RType, Body)来定义一个匿名函数,并在实际代码中展示了如何在函数参数中传递并调用这个lambda表达式。示例中,定义了一个接受整型参数并打印的lambda,然后在foo函数中将其传递给baz函数进行调用。
2763

被折叠的 条评论
为什么被折叠?



