- 论坛徽章:
- 0
|
本帖最后由 ufor 于 2012-08-28 13:59 编辑
系统平台:CentOS-5.3 32位
gcc版本 :gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-4
test1.c 如下:
[ufor@SAG1-CentOs-5 ~]$ cat test1.c
double squ(double x)
{
return (x * x);
}
main.c 如下:
[ufor@SAG1-CentOs-5 ~]$ cat main.c
#include <stdio.h>
int main()
{
double t1 = 1.1;
double t2 = squ(t1);
printf("********%lf\012", t2);
return (0);
}
编译执行如下:
[ufor@SAG1-CentOs-5 ~]$ gcc -g main.c test1.c
[ufor@SAG1-CentOs-5 ~]$ ./a.out
********1072798105.000000
[ufor@SAG1-CentOs-5 ~]$
请大家深度剖析下结果的原因!
刚才楼下几位朋友好像都没仔细看我的程序,1.1的平方应该是1.21,结果却是1072798105.000000和1.21一点不沾边的答案!
希望大家能从内存是如何发生变化的给小弟一些帮助!没有声明默认返回是int之类的原因,就不用说了!
|
|