LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 655|回复: 2

参数传递错误!!!

[复制链接]
发表于 2004-12-31 19:55:01 | 显示全部楼层 |阅读模式
这里有一个函数,如下:
void rotate(  float a,gdPoint refpt,gdPoint *p)
{.....
}
该函数放在trans.c中,
然后我在main.c中调用它,
.....
rotate(3.14,refpt,&point)
....
这里gdPoint 是 gd 提供的坐标结构,我在用gd图形编程,可是当我调试时,发现所有的参数都没有传递,全都是一些随机数,后来我把参数位置换成如下:
void rotate(gdPoint refpt,gdPoint *p,float a )
前两个参数可以传递,但是最后的那个float参数,即3.14没有正确传递,a的值数随机了, 这是为什么,我没有在main.c中声明函数原型,这对参数传递有影响吗???以前好像看见过相关文章说c的参数传递有些规定!!!
发表于 2004-12-31 20:15:02 | 显示全部楼层
原型是必须的,如果没有原型,C 编译器会将程序认定为老的 K&R C,这样就失去了很多新的 ANSI C 中对程序检查的安全机制。
 楼主| 发表于 2005-1-3 15:21:40 | 显示全部楼层
已经解决了,就是protype得问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表