问题是蛮简单的,复合常量是C99标准新添加的特性:
fun((int[]){5}))这种写法是定义一个匿名数组变量,相当于int a[] = {5}; f(a);
编译的时候需要添加-std=c99就可以了。
说一下你的代码,就这么一点代码就有2个错误,这样的代码能编译通过吗?
1:printf("%d\n",fun((int[]){5}); 少一个括号printf("%d\n",fun((int[]){5}));
2: fun返回类型是void,却要printf返回数值
C:\Users\Administrator\Desktop\新建文件夹\Text1.txtklalk.c(10) : error C2059: syntax error : '{'
老是这个问题,修改后也这样,希望您给我具体改一下
知道啦,我刚用博客园,不知道他的强大功能
你这是要干嘛啊,用参数么?
对,我知道int i=5;fun(&i)可以;今天看了一本书,495个c语言问题,里面说fun(&5)不对,可以用复合字面量fun((int[]){5}),但编译通不过
@火星十一郎: fun((int[]){5}),我也没听过,你是想要为上面函数传个指针么?
fun没有返回值????
你调试下,即便有返回值也是编译通不过,求高手,求高手
void fun(int *a)
{
*a+=2;
}
应该变成有返回值的函数为
int fun(int *a)
{
return *a+=2;
}