define的特殊使用
在看ti的源代码的时候看到一个define的特殊使用,或者可能是我以前没这么用过吧。的确很经典。。。。。备忘一下。
define的特殊使用
1 /************************************************************************/
2 /* define的变态使用 */
3 /************************************************************************/
4 typedef struct A
5 {
6 int i;
7 }A;
8
9 A aa;
10
11 #define mydefine \
12 &aa,\
13 NULL
14
15 typedef struct B
16 {
17 A* a;
18 void (*C)(int,int);
19
20 }B;
21
22 int main(int argc, char* argv[])
23 {
24 B b={mydefine};
25 printf("Hello World!\n");
26 return 0;
27 }
编译通过了。分析其原因的确是的,只要参数类型给的正确就可以了。不过这样用有点不习惯。但是ti里面好多结构体的定义都是这么写的。