| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:关于函数的问题!
只看楼主 加入收藏
kofsos
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-5-5
结帖率:100%
收藏
 问题点数:0 回复次数:6 
关于函数的问题!
大家好!本人菜鸟一只!第一次发帖~有点紧张!(呵呵)
我本着对C强烈的兴趣~自学到“函数”这章时,发现对书上说的内容不能很好的理解,
我认为”函数“就是一个完整的程序的一个分程序。主程序在对其有用的部分进行调用。
(不知道我大致的理解出错没有!)
但我还是对其‘声明’和’定义‘和‘调用’的无法理解透彻。
希望大家能给个容易理解说明谢谢了!
搜索更多相关主题的帖子: 函数 
2007-05-05 17:28
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
声明,相当于int a一样
定义,就是详细给出函数如何实现功能的解决办法
调用,顾名思义就是供其它函数包括自身使用

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-05-05 17:38
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
以下是引用kofsos在2007-5-5 17:28:55的发言:
大家好!本人菜鸟一只!第一次发帖~有点紧张!(呵呵)
我本着对C强烈的兴趣~自学到“函数”这章时,发现对书上说的内容不能很好的理解,
我认为”函数“就是一个完整的程序的一个分程序。主程序在对其有用的部分进行调用。
(不知道我大致的理解出错没有!)
但我还是对其‘声明’和’定义‘和‘调用’的无法理解透彻。
希望大家能给个容易理解说明谢谢了!

哈哈,直到前段时间,我还是对声明和定义没有弄明白

我现在跟你说下我的理解

调用

只要是别的函数的代码,你想用,这个过程就叫做:调用

声明,是在你调用函数 前 ,没有对 自定义函数 定义,就使用 这个函数

比如:

#include<stdio.h>
int main()
{
int max(int a,int b);//这里就是声明,它用分号结束,它是语句,当然你可以不写a,b,因为系统在编译的时候不查看参数形式,只查看参数个数和参数类型
int a,b;
scanf("%d,%d",&a,&b);
printf("max is %d",max(a,b));
getch();
return 0;
}
int max(int a,int b)//这里是定义,它不用分号结束,因为它不是语句
{
return a>b?a:b;
}

但如果你在写函数前就有定义过 自定义函数 ,那么就不要声明了

比如:

#include<stdio.h>
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int a,b;
scanf("%d,%d",&a,&b);
printf("max is %d",max(a,b));
getch();
return 0;
}


也许你还是不能理解,那么我就给你打个不恰当的比方:

你某天去机场坐飞机到某地,如果你在 别的地方 已经买好了机票,那个这个时候你就只要给机场的工作人员看下你的机票,你就可以登机了

这个过程就是声明,声明你有机票

如果你没买好机票,你是在机场的服务台买的临时票,那么服务人员知道你有机票,就让你直接登机

这个过程就是定义


自我放逐。。。
2007-05-05 17:56
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
附带说下

声明和定义是有区别,是在函数里有区别

如果是参数 (比如int a;),那么只有定义没有声明这个概念

自我放逐。。。
2007-05-05 17:58
fyi1106
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-14
收藏
得分:0 
声明写给编译器看的,是不占机器代码的。
定义就会被编成机器代码。
调用嘛,就是调用。

因为声明是写给编译器看的,所以写成这样也可以:int function(int, float, char);

JavaScript forever!
2007-05-05 18:01
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 

函数声明一定要在调用前,函数一旦声名,那么无论函数在那里被定义,在声名语句之后都可以调用这个函数。
也可以在声明的同时直接定义。先声名后定义主要是因为有的程序要循环嵌套调用。
例如:
int max(int a,int b);/*函数声名*/

void output(int x,int y)
{
int m
m=max(x,y);/*函数调用*/
printf("%d",m);
}

int max(int a,int b)
{
if(a>=b) return a;
else return b;
}/*函数定义*/


简单的快乐着~
2007-05-05 18:13
kofsos
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-5-5
收藏
得分:0 

谢谢了哦!继续学习!


万年潜水员!
2007-05-06 20:41
快速回复:关于函数的问题!
数据加载中...
 
   



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

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