| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:关于函数的困惑2
只看楼主 加入收藏
crowkkk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2008-11-28
收藏
 问题点数:0 回复次数:8 
关于函数的困惑2
如下例程,函数max()在主函数之前:
程序代码:
int max(int a,int b)
{
...
}
main()
{
  int x=1,y=2;
  z=max(x,y);
  ...
}

主函数体中并没有说明max()就可以直接调用,但书上不是说一段代码在运行时首先把指针指向主函数吗,那么为什么主函数在没有说明时就可以调用max(),不解啊
搜索更多相关主题的帖子: 函数 困惑 
2008-12-05 12:33
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
收藏
得分:0 
当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。
2008-12-05 13:14
crowkkk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2008-11-28
收藏
得分:0 
为什么啊,不解啊,不是说一个源文件在运行时,控制权先交给main()吗,也就是说在调用main()前源文件的任何代码都没有执行过吗?
2008-12-05 13:17
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
收藏
得分:0 
printf和scanf等库函数在用的时候还需要说明吗
他们包含在头文件中
道理是一样的
2008-12-05 13:24
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
收藏
得分:0 
所有函数的执行都是从MAIN函数开始
2008-12-05 13:26
RogueBoy
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-11-15
收藏
得分:0 
把函数定义在main下面时,要进行申明。
否则不要。
2008-12-05 13:48
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
你说的没错 是从main开始的  但编译连接在先 被调函数在main前时 编译系统会将此函数的入口地址记录 在编译main函数时将口地址付给z=max(x,y);   所以不用在main中声明了
2008-12-05 13:48
kantala
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-12-5
收藏
得分:0 
编译器把非系统函数从上到下压入堆栈,执行的时候从堆栈的顶端逐个取出
2008-12-05 13:54
chanward001
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-12-5
收藏
得分:0 
今天上课老师说要用函数调用来编写程序。不懂呀。。。
2008-12-05 15:48
快速回复:关于函数的困惑2
数据加载中...
 
   



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

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