C 语言 GCC 内嵌函数实现 Lambda 表达式
代码 ({ //函数实现 函数名称; })
#include <stdio.h>
#include <malloc.h>
#define action_lambda(function_body) \
({void lambda_func function_body lambda_func;})
#define func_lambda(return_type, function_body) \
({return_type lambda_func function_body lambda_func;})
typedef void (*Action)(char** message);
void Initial(Action options);
static char* g_opts = NULL;
int main(int argc, char **argv)
{
char* msgs = "test";
// 调用
Initial(action_lambda((char** msg){ *msg = msgs; printf("g_opts = %s.", g_opts); }));
return 0;
}
void Initial(Action options)
{
options(&g_opts);
}