标题:C语言中函数定义中参数个数的奇怪问题
只看楼主
oppupu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-12-8
结帖率:0
已结贴  问题点数:20 回复次数:1 
C语言中函数定义中参数个数的奇怪问题
本人对C语言不太懂,因为工作要求,对一个C语言程序进行了重构,里面有个函数调用有个小问题,但原来一直编译通过,所以没太仔细考虑过。但今天突然编译有问题了。问题情况放到我的博客上了,地址为: http://www.

下面将博客上内容粘贴过来,求高手解答。

今天在用C语言编译程序的编译通不过,在调用一个函数read_image()的时候,提示说:
too many arguments to function 'read_image'
setup.c /fragstats line 287

查看源代吗中与read_image相关的地方:
程序代码:
grep read_image *.c *.h
ckback.c: * Call read_image with the image_edge set to 1; this will force the image
ckback.c: read_image (1);
ckedge.c: read_image (0);
fragstats.c: read_image (0);
fragstats.c: read_image (0);
landedge.c: read_image (0);
rascont.c: read_image (0);
readimg.c:void read_image (alter_orig)
setup.c: read_image (0, &bcode);
setup.c: read_image (0);
routines.h:void read_image ();


倒数第3个即是出问题的地方。

其实这个问题我原来也发现过,因为对C语言只能说是略知一二,所以没认为此处有问题。而且代码是公开发布的,编译也通过了。

由于一些原因,我对源代码进行了重构,增加了一些功能,代码一直也编译没有问题,但是没想到今天突然出现问题了,而且怎么调试也不行。再编译原来的 代码,还是没有问题。就此问题在QQ群上询问了一些人,都认为是调用的有问题,参数多给了一个,但谁也解决不了为何原来代码编译通过的现象。

最后,我把调用函数read_image (0, &bcode)直接修改为read_image (0),编译通过了,而且从运行结果上来看,与原来的结果也是一致的,只是不知会不会存在隐患,不定哪天又出现了。

今天在用C语言编译程序的编译通不过,在调用一个函数read_image()的时候,提示说:

too many arguments to function 'read_image'
setup.c /fragstats line 287

查看源代吗中与read_image相关的地方:
程序代码:
grep read_image *.c *.h
ckback.c: * Call read_image with the image_edge set to 1; this will force the image
ckback.c: read_image (1);
ckedge.c: read_image (0);
fragstats.c: read_image (0);
fragstats.c: read_image (0);
landedge.c: read_image (0);
rascont.c: read_image (0);
readimg.c:void read_image (alter_orig)
setup.c: read_image (0, &bcode);
setup.c: read_image (0);
routines.h:void read_image ();


倒数第3个即是出问题的地方。

其实这个问题我原来也发现过,因为对C语言只能说是略知一二,所以没认为此处有问题。而且代码是公开发布的,编译也通过了。

由于一些原因,我对源代码进行了重构,增加了一些功能,代码一直也编译没有问题,但是没想到今天突然出现问题了,而且怎么调试也不行。再编译原来的代码,还是没有问题。就此问题在QQ群上询问了一些人,都认为是调用的有问题,参数多给了一个,但谁也解决不了为何原来代码编译通过的现象。

最后,我把调用函数read_image (0, &bcode)直接修改为read_image (0),编译通过了,而且从运行结果上来看,与原来的结果也是一致的,只是不知会不会存在隐患,不定哪天又出现了。
搜索更多相关主题的帖子: 工作 C语言 color 博客 
2011-12-08 20:15
zjslwyp
Rank: 2
等 级:论坛游民
帖 子:42
专家分:76
注 册:2011-3-24
得分:20 
你得把read_image这个函数的定义给人看才知道这个函数具体是要传递多少个函数,才能解决具体的问题啊。只给看一个调用,看不出什么问题的
2011-12-08 22:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-357334-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081820 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved