Post

6.函数

6.函数

function

作用:

  • 减少重复代码块
  • 代码模块清晰

函数定义的一般形式:

1
2
3
4
返回类型 函数名(形式参数列表)
{
	数据定义部分;
	执行语句部分; }

函数定义

无参无返回值函数定义

void fun() { }

有参无返回值函数定义

void fun2(int a , int b) { }

形参 和 实参

  • 定义函数时 () 里面的参数叫形参
  • 形参不开辟空间,即 形式上的参数
  • 形参只有在被调用的时候 会分配空间,调用结束时,释放空间
  • 调用函数时,() 里面的参数叫实参
  • 实参和形参的类型必须一致
  • 形参不会影响实参,只会是单向传递
  • 实参本身为变量,传给形参时,只会把值传进去,不会传递空间
形参返回值
  • 大于 4 字节时,存在内存里
  • 小于等于 4 字节时,存在寄存器里

函数的声明

作用:告诉编译器,这个东西在其他地方定义 有函数体就是函数的定义,无函数体就是函数的声明

  • 函数的声明,把函数的定义形式放在调用之前
    • void swap(int a , int b);
  • 函数声明不用写函数体
  • 声明函数的时候需要加分号
  • extern 用来声明
    • extern void swap(int a , int b);
    • void swap(int , int);
    • //函数声明可以不加 extern 和变量名

return 和 exit 的区别

return – 结束当前所在函数。在main 函数中结束整个程序 exit – 结束整个程序

分文件

头文件

  • <> 从系统中找
  • ”” 在当前目录找 - 即文件根目录

单独的函数文件

  • 方便不同项目 用到相同功能时的调用
  • 在函数文件(.c)中实现
  • 在头文件(.h)中调用

防止头文件重复包含

第一种方法

1
2
3
4
5
6
7
#ifndef _MT_MATH_H_   //定义宏名字最好与文件名一样,大写
#define _MT_MATH_H_
int my_max(int a,int b);
int my_min(int a,int b);
int my_div(int a,int b);

#endif    //#endif 与  #if  联用

第二种方法

1
pragma once
This post is licensed under CC BY 4.0 by the author.