C语言的学习笔记2-函数

    


如果把所有代码全部放在main函数里面,太拥挤了,不容易读懂理解代码,也不利于团队开发,所有除了main函数以外,我们需要编写其它函数来辅助main函数。


一.函数的定义格式


返回值类型 函数名(形参)

{

   函数体

}

函数名:函数叫什么,属于标示符,要遵守标示符规则。

函数体:函数需要实现什么呢,什么功能呢。

形式参数:定义函数时函数名后面括号里面的参数,简称形参。接收其它函数的实参。


二.函数的调用   


1.函数的调用就是需要实现某个功能,通过传递参数或者无参数传递调用函数使用其它函数的功能。下面函数就是在main函数里面调用hello函数实现功能。

<span style="font-family:SimSun;font-size:18px;">#include<stdio.h> 

void hello(); 
int main() 
{         
 
    hello();//调用hello函数实现所需要的功能    
    return 0;     
}

 void hello()
{    
 
    printf("hello");
}</span>


2.函数的调用有时需要传递参数,被调用函数后面的参数叫形参,调用函数时传入参数叫实参。


3.注意:

(1)实参个数必须等于形参个数,实参和形参要一一对应,类型也要一样
(2)被调用函数里面不能定义和形参一样的变量,因为作用域一样,会起冲突。

(3)传递的参数是基本类型,像整型,字符型,浮点型。纯碎是值传递,形参的改变不会影响到实参。

(4)函数可以没有参数,也可以有无限个参数。

 

三.函数的返回值

 

1.return的作用,第一是退出函数的标准,第二是如果函数返回值类型不为空,会返回一个具体值给这个其它函数里面的调用的这个函数


2.注意:

(1)void代表没有返回值,return可以不写或者写return;不返回任何值

(2)return在函数里面可以多次出现,提前退出函数。

(3)不写返回值类型,默认是返回int类型

(4)就算明确写了返回值类型,也可以不返回任何值,为了程序的可读性,应该写上。

(5)默认情况下,C语言不允许两个函数名一样。


四.函数的定义步骤


1.根据函数的作用,起一个合适的名字,让别人看见这个函数名就知道函数要实现什么功能。

2.确定函数需要接收几个参数,

3.看函数需不需要返回值。

 

五.函数的注意


1.函数名不允许一样,即使他们一个有参数传递,一个没参数传递

2.函数不能嵌套定义,就算说一个函数里面不能再定义其它函数

3.函数不能重复定义,也就是函数名不能重复。但是可以有无数个函数声明,C语言不报错

4.如果有函数的声明,没有函数的定义。可以通过编译,因为编译器只会检测语法合不合理,并不检测函数有没有定义。但是链接时会报错,因为链接的时候会检测是否定义了函数。

5.函数的声明可以在main函数里面也可以在main函数外面。函数的声明可以省略形参,只需要其它函数知道有你这个函数而已。

6.main函数返回值0表示正常退出,返回1表示异常退出。对程序本身没有影响

7.printf也是函数,也有返回值,返回值类型是int,返回的是字符串的字节数。

 

六..h文件和.c文件


由于把所有代码都写在一个文件里,不利用阅读和调试。多个人修改同一文件会出现问题,一般完成一个项目需要多人合作,这样不利用团队合作。一般在团队开发中,一个人写main函数,其他人写功能函数,除写main函数以为的人,其他人要为自己的功能函数建立一个.h文件和.c文件,.c文件写函数的定义,.h文件写.c文件内每个函数的声明。写main函数的人只需要将.h文件拷贝到自己文件里面就可以了。这样就可以实现多人开发。编译的时候main的.c文件和其他函数的.c文件各自编译,链接的时候把所有相关联的.o文件和C语言函数库合并在一起,生成可执行文件。


七.include


1.作用:拷贝右边文件的所有内容到#include所在的位置

2.自定义的文件用“”括起来,系统自带文件用<>括起来

3.用printf和scanf函数的时候,必须要再main函数前面加上#include <stdio.h>.就是为了把2个函数的声明拷过来。

 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值