GNU C用宏实现lambda表达式
来源:互联网 发布:spss for mac 破解版 编辑:程序博客网 时间:2024/06/06 02:20
看到一篇文章,利用GNU C提供的嵌套函数(nested function)来实现lambda表达式的功能,很有意思。原文在这里。代码如下:
#include <stdlib.h>#include <stdio.h> #define lambda(l_ret_type, l_arguments, l_body) \ ({ \ l_ret_type l_anonymous_functions_name l_arguments \ l_body \ &l_anonymous_functions_name; \ }) int main (int argc, char *argv[]){ int array[] = { 4, 3, 1, 2, 5 }; void dump (void){ int i; for (i = 0; i < sizeof (array) / sizeof (array[0]); i ++) printf ("%d ", array[i]); printf ("\n"); } printf ("Initial: "); dump (); int comparison = 0; qsort (array, sizeof (array) / sizeof (array[0]), sizeof (array[0]), lambda (int, (const void *a, const void *b), { dump (); printf ("Comparison %d: %d and %d\n", ++ comparison, *(const int *) a, *(const int *) b); return *(const int *) a - *(const int *) b; })); printf ("Sorted: "); dump (); return 0;}
- GNU C用宏实现lambda表达式
- 【c/c++】Lambda表达式
- C#--Lambda表达式
- C#:Lambda 表达式
- C++lambda表达式
- C++lambda表达式
- C# Lambda表达式
- C++:lambda表达式
- C#Lambda表达式
- 【c++】lambda表达式
- C++lambda表达式简记
- c#lambda表达式复习
- [C++]Lambda表达式简介
- 【C#】理解Lambda表达式
- 【C++】Lambda表达式
- C++lambda表达式
- C++Lambda表达式用法
- C++:lambda表达式
- (二)spring 之IOC容器
- Git 工作区、暂存区和版本库
- jquery-xheditor
- 如何使用Enigma Virtual Box进行单文件绿色可执行软件的封装
- 我的php学习之路
- GNU C用宏实现lambda表达式
- 工作笔记(二)
- android 中自定义dialog
- (三)spring之自动封装
- JQuery Mobile+ iscroll 列表滚动条的实现
- fdisk 和 df 命令
- Android之获取wifi信号强度
- (四)sping之代理
- Linux命令——cut命令学习