Heng30的博客
搜索 分类 关于 订阅

如何为C语言实现Lamdba表达式?

2024-09-07

程序开发中,对变量进行合适命名是一件麻烦的事情。所以很多编程语言提供了Lamdba匿名函数。可是C语言作为早期的编程语言,并不支持Lamdba表达式。不过可以通过来模仿。

实现代码

#include <stdio.h>

#define LAMDBA(return_type, args_type, block)                                  \
    ({                                                                         \
        return_type _ args_type block;                                         \
        _;                                                                     \
    })

int main(int argc, char *argv[]) {
    int sum = LAMDBA(int, (int a, int b), {
        return a + b;
    })(1, 2);

    printf(""1 + 2 = %d\n"", sum);
    return 0;
}

上面的例子需要通过gcc来进行编译。