我给出了一个示例来说明我在第 6 行中所指的分配样式。
1 #include<stdio.h>
2
3 int main(int argc,char *argv[])
4 {
5 int a,b,c;
6 c = ({ a=5; b = a+1;});
7 printf("%d\n%d\n%d\n",a,b,c);
8 return 0;
9 }
我不确定它是什么。它{}
不是数组中使用的初始化列表int arr[]={1,2,3}
。
更新: 也许使用这种方法我可以在函数中定义一个函数,或者在 gcc 中定义一个错误(版本 4.7.2(Ubuntu/Linaro 4.7.2-2ubuntu1))
1 #include<stdio.h>
2 #include<math.h>
3 int main(int argc,char *argv[])
4 {
5 int a,b;
6 b = ({int cos(i){return 0;};a = 0;cos(a);});
7 printf("%d\n%d\n",a,b);
8 b = cos(0);
9 printf("%d\n%d\n",a,b);
10 return 0;
11 }
输出:
0
0
0
1