| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2850 人关注过本帖
标题:由朋友提问,想到的一个自定义函数的问题(未解决)
只看楼主 加入收藏
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
如果觉得自己是对的,就努力去说服对方

雁无留踪之意,水无取影之心
2007-04-10 15:22
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
这三个基本上没有什么区别呀。
我很纳闷,这三个程序都是很平常的,我们经常可以见到的。
我不知道楼主出于什么想法,可能不是楼主提的吧。
你看,他等级多高了呀。
怎么可能呀?

~~我的明天我知道~~
2007-04-10 15:40
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
果然是水区来的,有点差点,看9楼

雁无留踪之意,水无取影之心
2007-04-10 16:01
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用PcrazyC在2007-4-10 10:56:29的发言:
注意两点:

声明函数时,是一个语句,后面要加分号,而定义函数时,不是语句,所以不能加分号,就和宏定义一样(宏定义不是语句)

在调用函数前的任何地方进行了声明或定义(当然不能嵌套定义)后,都没有问题,否则会出现编译错误

另外其实还是有区别的:

函数进行声明时,其实就是一个定义变量的过程,函数名就是一个变量,如果声明在函数外,就相当于定义了一个全局变量,如果声明再某个过程中(包括复合语句),就相当于定义一个局部变量,其作用范围我就不说了.

猴子,你是不是去泡妞啊

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord();

OutFunction();
getch();
}

你编译不过去?!

2007-04-10 16:21
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

哪编译不过,我的怎么很好

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord(); //这句还是多余的,不要都可以,要也行

OutFunction();
getch();
}


雁无留踪之意,水无取影之心
2007-04-10 16:27
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用PcrazyC在2007-4-10 16:27:11的发言:

哪编译不过,我的怎么很好

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord(); //这句还是多余的,不要都可以,要也行

OutFunction();
getch();
}


看来你没明白我的意思


函数进行声明时,其实就是一个定义变量的过程,函数名就是一个变量,如果声明在函数外,就相当于定义了一个全局变量,如果声明再某个过程中(包括复合语句),就相当于定义一个局部变量,其作用范围我就不说了.

2007-04-10 16:30
旭日潜龙
Rank: 1
等 级:新手上路
帖 子:798
专家分:0
注 册:2007-3-29
收藏
得分:0 
以下是引用pinglideyu在2007-4-10 15:40:32的发言:
这三个基本上没有什么区别呀。
我很纳闷,这三个程序都是很平常的,我们经常可以见到的。
我不知道楼主出于什么想法,可能不是楼主提的吧。
你看,他等级多高了呀。
怎么可能呀?

猴子能有多高啊....


灌水只发表情!
2007-04-10 16:32
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

刚才那个程序不太能说明问题
你看看这个:

int DimFunction()
{
int PrintWord();
}

int OutFunction()
{
PrintWord();
}

main()
{
OutFunction();
getch();
}

int PrintWord()
{
printf("Money!");
}

2007-04-10 16:33
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

那不就相当于即定义了一个全局变量,又定义了一个局部变量,在局部变量的范围内,全局变量被屏蔽,而在其它的地方还是可以用的


雁无留踪之意,水无取影之心
2007-04-10 16:33
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
28楼又怎么了

雁无留踪之意,水无取影之心
2007-04-10 16:35
快速回复:由朋友提问,想到的一个自定义函数的问题(未解决)
数据加载中...
 
   



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

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