#include<stdio.h>
abs(int a);
main()
{
int i=1;
i=abs(4);
printf("hello word=%d",i);
}
abd(int a)
{
}
这个函数为什么可以运行额?运行结果i=4。。。。c语言无返回值类型默认是int型。。怎么感觉好像是void、int双重类型
文件改成C的了。。。。C语言他不就规定了不写VOID默认为int吗
追答“C语言他不就规定了不写VOID默认为int吗”:这个和编译器有关吧。我们学C是用的是DEV这个编译器,至少这个编译器不会把C的void默认为int。。。你用的VC实际上是在用C++的编译器编译C语言。
如果默认了,那不就对了吗?就是int呀,为什么会认为是int和void的双重类型呢?
我用VS2010编译运行,结果是-858993460。原因应该是输出了一个未初始化的值(你的那个赋值语句在这个编译器里应该被视为只声明了,未赋值)。可能任意未赋值的整数都会被视为这个值吧。你可以看一下这个:http://tieba.baidu.com/f?kz=871822422
至于有人说VC下输出为4,我不清楚VC的编译器是怎么做到的。
我也用的VC。。可以运行额
追答但结果是随机值,不是4.