社区
C语言
帖子详情
调用未声明的函数,为何会因此参数传递错误?
yueyucanyang
2010-06-13 02:16:27
编译环境VC6.0
最近测试一段代码,B函数调用A函数,发现函数A()参数传递总是出现错误,调用A函数之前所有参数都是正确,进入A函数时,参数就变成错误了,后来检查发现,在B函数之前未做A函数的声明,当声明之后,参数传递就正确了,请问,这个该如何解释?
...全文
333
23
打赏
收藏
调用未声明的函数,为何会因此参数传递错误?
编译环境VC6.0 最近测试一段代码,B函数调用A函数,发现函数A()参数传递总是出现错误,调用A函数之前所有参数都是正确,进入A函数时,参数就变成错误了,后来检查发现,在B函数之前未做A函数的声明,当声明之后,参数传递就正确了,请问,这个该如何解释?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yingziqdk
2010-10-18
打赏
举报
回复
这个问题确实存在,在有些编译器连警告都不会有,今天我用TI 的CCS3.3编译时就碰到这个问题,没有警告,没有提示错误,但参数传递不过去(定义函数时的参数类型和调用时的参数类型不同就会出错,类型相同时就没用问题,定义和调用是在两个不同的文件中),C51似乎有同样的问题。
风中之哨
2010-07-26
打赏
举报
回复
[Quote=引用 3 楼 freezezdj 的回复:]
没声明,C会根据你传入的参数给你默认一个。
当你传入的参数可能需要隐式转换成你定义的函数参数时候。
程序就可能出问题。
C++没声明,报错。
[/Quote]
这个所谓的默认参数到底是什么类型的????我曾经猜测是int, 因为只有int 和 指针类型是不会出错的。
yueyucanyang
2010-06-29
打赏
举报
回复
我还要说一下,我结贴给分的未必是正确的言论,只不过人家进行试验验证了。发此回复,防止误导其他人。
yueyucanyang
2010-06-29
打赏
举报
回复
[Quote=引用 16 楼 freezezdj 的回复:]
楼主该虚心向taodm学习!
[/Quote]
只要大家说的正确,我都是会去学习的,不管级别有多少。星多未必代表言论正确,有时候反而我发现有些低级别的人更加谦虚谨慎,回答的更是热心到位。
走好每一步
2010-06-14
打赏
举报
回复
其实警告隐伏着错误的,我不会在warning没改正之前将程序跑起来。
cattycat
2010-06-13
打赏
举报
回复
调用函数前必须声明函数或直接在前面定义函数。
东莞某某某
2010-06-13
打赏
举报
回复
没看清题呵呵,学习3L了。
呵呵 大家也不要带情绪了,讨论问题尽量不要在乎与问题无关的,技术有等级,人可不要分等级,互相尊重
冻结
2010-06-13
打赏
举报
回复
楼主该虚心向taodm学习!
arong1234
2010-06-13
打赏
举报
回复
所以需要你区分哪些警告重要,哪些不重要了。这个警告的文字一读,就觉得风险比较大,你竟然忽略[Quote=引用 14 楼 yueyucanyang 的回复:]
引用 13 楼 taodm 的回复:
至于你觉得“最后警告我会全部处理掉”,那就不是“传说中的典型的C程序员”,恐怕还不够。
因为很多警告必须被认为是错误,而需要立即处理,而不是机械地最后不可以留警告。
你的意思就是说只要编写代码出现警告就是“传说中的典型的C程序员”?我想任何程序员编写代码总是难免出现警告,但是警告也是需要一点点调试掉的。唉……。真是鱼龙混杂啊!~
[/Quote]
yueyucanyang
2010-06-13
打赏
举报
回复
[Quote=引用 13 楼 taodm 的回复:]
至于你觉得“最后警告我会全部处理掉”,那就不是“传说中的典型的C程序员”,恐怕还不够。
因为很多警告必须被认为是错误,而需要立即处理,而不是机械地最后不可以留警告。
[/Quote]
你的意思就是说只要编写代码出现警告就是“传说中的典型的C程序员”?我想任何程序员编写代码总是难免出现警告,但是警告也是需要一点点调试掉的。唉……。真是鱼龙混杂啊!~
taodm
2010-06-13
打赏
举报
回复
至于你觉得“最后警告我会全部处理掉”,那就不是“传说中的典型的C程序员”,恐怕还不够。
因为很多警告必须被认为是错误,而需要立即处理,而不是机械地最后不可以留警告。
taodm
2010-06-13
打赏
举报
回复
原因在3楼就已经答了。
yueyucanyang
2010-06-13
打赏
举报
回复
[Quote=引用 9 楼 taodm 的回复:]
楼主果然是传说中的典型的C程序员,只看error,无视warning的。
[/Quote]
我只想问一下为什么会出现这样的事情?希望不要跑题。
当然最后警告我会全部处理掉的。因为我这个函数的参数会不断的修改,暂时不打算声明,等完全确定之后再去声明。
我想你作为一个四星级的用户,最好了解了特定的环境后在对人进行评价。我只是针对这件事而已!
yueyucanyang
2010-06-13
打赏
举报
回复
[Quote=引用 1 楼 kuyucman 的回复:]
,后来检查发现,在B函数之前未做A函数的声明,当声明之后,参数传递就正确了
似乎A未在B之前声明的话,编译不会通过。
C/C++ code
#include<stdio.h>
void B()
{
A(); //error C2065: 'A' : undeclared identifier
}
void A()
{
NULL;
}
……
[/Quote]
A和B不放在通过一个文件,你在试试,且建立一个头文件,A.H。B包含A.H,但是A.H中可以不做声明
taodm
2010-06-13
打赏
举报
回复
楼主果然是传说中的典型的C程序员,只看error,无视warning的。
yueyucanyang
2010-06-13
打赏
举报
回复
[Quote=引用 2 楼 pengpeng_xixi 的回复:]
在调用一个函数之前要先声明,除非是被调用的函数写在调用它的函数的前面,这样就不用声明
[/Quote]
我在使用VC6.0,编译没有问题,只是有警告而已!~
yueyucanyang
2010-06-13
打赏
举报
回复
[Quote=引用 1 楼 kuyucman 的回复:]
,后来检查发现,在B函数之前未做A函数的声明,当声明之后,参数传递就正确了
似乎A未在B之前声明的话,编译不会通过。
C/C++ code
#include<stdio.h>
void B()
{
A(); //error C2065: 'A' : undeclared identifier
}
void A()
{
NULL;
}
……
[/Quote]
我的可以通过啊?只是有警告,warning C4013: 'EncInit' undefined; assuming extern returning int
llh318724
2010-06-13
打赏
举报
回复
[Quote=引用 5 楼 jackyloncoln 的回复:]
前面已经说的很详细了。
在一个函数A()调用另一个函数B()时,必须在A之前对B函数进行声明。
或者将B函数放在A函数之前。
[/Quote]
同意
jackyloncoln
2010-06-13
打赏
举报
回复
前面已经说的很详细了。
在一个函数A()调用另一个函数B()时,必须在A之前对B函数进行声明。
或者将B函数放在A函数之前。
liutengfeigo
2010-06-13
打赏
举报
回复
确实是这样~
加载更多回复(3)
函数
的
调用
和
参数传递
函数
的
调用
和
参数传递
在定义了一个
函数
之后,只有
调用
该
函数
才能执行
函数
的功能,否则。
函数
在程序中只是一段静态的代码,而永远不可能执行。 1.
函数
调用
过程
函数
调用
的一般形式如下 : 如果是无参
函数
,没有实参表...
python
函数
的
调用
的时候参数的传递_Python中
函数
调用
参数传递
时的注意事项
Python提供了许多内建
函数
,我们也可以自己创建
函数
,
函数
调用
参数传递
时有几点值得注意。工具/原料电脑python注意事项:1必备参数须以正确的顺序传入
函数
,
调用
时的数量必须和声明时的一样,不然
会
出现语法
错误
。2...
函数
参数与
函数
调用
(彻底理解值传递与引用传递)
函数
调用
的作用: ·用实参数向形式
参数传递
数据;...
函数
参数传递
机制 堆栈存储区是主调
函数
(过程)和被
调用
函数
(过程)在
调用
发生时进行通信的主要区域。 基本的
参数传递
机制有两种:值传递和引用传递。值传递(pas
c语言中
函数
调用
的原理及形参传递实质原理分析
函数
参数传递
机制问题在本质上是
调用
函数
(过程)和被
调用
函数
(过程)在
调用
发生时进行通信的方法问题。基本的
参数传递
机制有两种:值传递和引用传递。以下讨论称
调用
其他
函数
的
函数
为主调
函数
,被
调用
的
函数
为被...
TypeScript
函数
:定义、
调用
和
参数传递
在这个
函数
中,我们指定了两个参数的类型(和),以及
函数
的返回值类型(: number本文介绍了 TypeScript
函数
的定义、
调用
和
参数传递
方法。通过学习这些知识,可以更好地理解 TypeScript 中的
函数
概念,并使用 ...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章