鱼C论坛

 找回密码
 立即注册
查看: 3328|回复: 1

[技术交流] 《带你学C带你飞》第二十八讲:函数

[复制链接]
发表于 2018-1-21 22:32:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2018-8-23 18:44 编辑

越努力,越幸运。欢迎大家来看我的笔记,不对的请各位大佬指正,谢谢

一、
标准库函数
C 语言的标准库中还为我们提供了很多实现各种功能的函数,有处理字符串的,有数学计算的,有输出输入的,有进程管理的,有信号、接口处理的……
链接:http://bbs.fishc.com/thread-70614-1-1.html

有了这些函数,我们就不用去关注内部的实现细节,只需要将注意力放在程序的实现逻辑上即可。比如要打印字符串到屏幕上,我们只需要知道调用 printf 函数并给它传递要打印的内容即可,至于它内部是怎么做到的,我们不需要理会。

二、函数
(1)C语言要求函数必须“先定义,再调用”,
(2)函数的定义:(如果函数不需要参数,建议定义时在函数名后边的小括号中写上 void,明确表示该函数无参数。)
定义函数的格式如下:
类型名  函数名(参数列表)
{
         函数体
}
•类型名就是函数的返回值,如果这个函数不准备返回任何数据,那么需要写上 void(void 就是无类型,表示没有返回值)。
•函数名就是函数的名字,一般我们根据函数实现的功能来命名,比如 print_C 就是“打印C”的意思,一目了然。
•参数列表指定了参数的类型和名字,如果这个函数没有参数,那么这个位置直接写上小括号即可(())。
•函数体就是指定函数的具体实现过程,是函数中最重要的部分。
•类型名不写的话,返回值默认是整形的


(3)函数的声明
声明函数的格式:非常简单,只需要去掉函数定义中的函数体再加上分号。(在声明的时候,可以不写参数的名字,但是类型要写~)
void print_C(void);

所谓声明(Declaration),就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。有时候,你可能会发现及时不写函数的声明,程序也是可以正常执行的。但如果你把函数的定义写在调用之后,那么编译器可能就会找不着北了。
如下面代码:
#include <stdio.h>
int main(void)
{
        print_C();
        return 0;
}

void print_C(void)
{
        printf(" ###### \n");
        printf("##    ##\n");
        printf("##      \n");
        printf("##      \n");
        printf("##      \n");
        printf("##    ##\n");
        printf(" ###### \n");
}
它先调用了定义,但是没有声明,会报错的。因为程序的编译时从上到下执行的,所以从原则上来说,函数必须“先定义,再调用”。向上边例子反其道而行就会出问题。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提前声明。

三、函数的返回值
(1)有时候,函数需要接收用户传入的数据,那么就需要使用函数的参数。根据需求,函数的参数数量可以有多个,类型也可以各不相同。而函数的返回值通常是反馈了函数的计算结果,也可以是函数的执行结果(比如成功True或失败false)。

(2)小知识
0.在声明的时候,可以不写参数的名字,但是类型一定要写!
1.在main函数里的变量名和在自定义函数中的变量名不会有冲突(但是最好不要起一样的名字,变量名的值会有冲突,而且容易搞混)。
2.传到自定义函数中的数据叫做实参,在自定义函数上接收数据的叫做形参。
3.实参和形参必须是同种类型!
4.自定义函数中,遇到“return"就会立刻返回,不会执行后面的了。。。

(3)实例:
1.JPG








谢谢小甲鱼带来的视频教程,感谢!!

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记,不对的请各位大佬指教,谢谢

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-6 11:26:14 | 显示全部楼层
这个背景看着眼花
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表