| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2360 人关注过本帖, 1 人收藏
标题:c的心脏——函数
取消只看楼主 加入收藏
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
结帖率:73.08%
收藏(1)
已结贴  问题点数:100 回复次数:5 
c的心脏——函数
书上说过函数是c语言的灵魂和心脏c语言只支持一种风格的函数——即外部函数。
函数体内不能再定义函数
如:
int f(void) //错误
{
int f1(void)
{
......
}
}

声明函数的位置,
声明函数位置的不同,其作用范围也不同,这主要分为函数内部声明(也称为局部声明)和函数外部声明(如果放在最前端main()函数上又称为全局声明)两种情况
所谓函数内部声明,就是指将声明函数的语句放在一个函数体内,这种方式声明的函数仅可在内部
被调用。
下面的代码演示了内部声明函数的用法。
#include <stdio.h>

int main()  //主函数
{
void game_begin(void);  //在主函数内声明game_begin()函数
game_begin();           //调用game_begin()函数,由于它已经声明过,因此可以运行
game_end();             //调用game_end()函数,由于它未声明,因此将导致错误
return 0;
}
void game_begin(void) {     //game_begin()函数的定义代码
printf("游戏开始.\n祝你好运!\n");
}
void game_end(void) {     //game_end()函数的定义代码
printf("游戏结束.\n");
}
函数外部声明:
#include <stdio.h>
void game_begin(void);
void game_end(void);
int main()
{
game_begin();  //调用函数game_begin()
game_end();    //调用函数game_end()
return 0;
}
void game_begin(void) {     //game_begin()函数的定义代码
printf("游戏开始.\n祝你好运!\n");
}
void game_end(void) {     //game_end()函数的定义代码
printf("游戏结束.\n");
}
我想问外部声明函数和内部声明函数有什么不同呢???两者之间的调用范围是不是前者有限制,后者没有?
我还是不太懂,请大虾道露天机,谢谢各位了
搜索更多相关主题的帖子: 风格 include 声明 
2012-08-18 19:55
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
由于main()的全局覆盖性质,它事实上等效于全局声明,  看懂了这句
2012-08-18 20:34
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
前两天我不在啊!!!
由于函数定义也可以作为函数原型使用——所以理解这句——由于main()的全局覆盖性质,它事实上等效于全局声明,
2012-08-18 20:43
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
以下是引用TonyDeng在2012-8-18 20:42:28的发言:

你可以在非main()中声明一个函数,然后看看另外一个函数能不能调用这个似乎被包含在内部的函数。
大大可否写个验证代码
2012-08-18 20:47
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
消化。。。
2012-08-21 18:58
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
以下是引用信箱有效在2012-8-22 02:17:43的发言:

快结了吧
你什么着急啊
2012-08-22 18:08
快速回复:c的心脏——函数
数据加载中...
 
   



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

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