摘要:
在Linux内核代码中,有非常多的代码使用了GCC的很多扩展特性,本篇文章主要是对这些特性做一个小小的总结,代码全部来自于GCC手册1.被一对花括号包起来的代码块可以作为一个表达式来使用,花括号中可以使用循环语句(while、for),开关语句(if、switch),本地变量等。代码如下:1234({ int y = foo (); int z; if (y > 0) z = y; e... 阅读全文
摘要:
在Linux内核代码中,有非常多的代码使用了GCC的很多扩展特性,本篇文章主要是对这些特性做一个小小的总结,代码全部来自于GCC手册1.被一对花括号包起来的代码块可以作为一个表达式来使用,花括号中可以使用循环语句(while、for),开关语句(if、switch),本地变量等。代码如下:1234({ int y = foo (); int z; if (y > 0) z = y; e... 阅读全文
摘要:
在C语言中可以通过宏定义的方式实现匿名函数,具体如下:123456#define lambda(return_type, function_body) \({ \ return_type $this function_body \ $this; \})#define $ lambda该定义利用了GCC对C语言的扩展(被一对花括号包起来的代码块能够返回一个值),该宏定义能... 阅读全文
|