1、本文参考《Android底层开发技术实战详解--内核、移植和驱动》。
2、其中书上泛形部分写法有错,需要在行尾加上反斜杠。
1 /**************************************************************************
2 * C templet and switch case with serial number
3 * 声明:
4 * 1、本文参考《Android底层开发技术实战详解--内核、移植和驱动》。
5 * 2、其中书上泛形部分写法有错,需要在行尾加上反斜杠。
6 *
7 * 2015-7-19 晴 深圳 南山平山村 曾剑锋 星期日
8 *************************************************************************/
9 #include <stdio.h>
10
11 /**
12 * 实现了C++里的泛形的写法,也就是模板
13 */
14 #define min( x, y ) ({ \
15 typeof(x) _min1 = (x); \
16 typeof(y) _min2 = (y); \
17 _min1 < _min2 ? _min1 : _min2; }) \
18
19 int main( int argc, char** argv ) {
20 printf( "min(1, 2) = %d", min( 1, 2 ) );
21
22 int major_idx = 3;
23 switch ( major_idx ) {
24 case 0:
25 printf( " 0.\n");
26 break;
27 case 1 ... 4: // 一定要记得...两边有空格
28 printf( " 0...4.\n");
29 break;
30 default:
31 printf( "default.\n");
32 break;
33 }
34 }