vlambda博客
学习文章列表

C语言—函数(function)函数定义、函数声明、函数调用!



函数

作用:提高代码复用率,提高程序模块组织性。

分类:系统库函数,标准C库 ·libc

 1):必须要引入头文件#include<xxx.h>函数声明

2):根据函数库函数原型,调用函数

用户自定义函数

bubble_sort()   ,   ruprint(),除了需要提供函数原型之外,还需要提供函数实现。

使用函数:函数定义、函数声明、函数调用

函数定义:函数定义必须包含“函数原型”和函数体。

函数原型:返回值类型 + 函数名 + 形参列表

形参列表:形式参数列表,一定包含类型名、形参名。

 //加法函数
 int add(int a, int b)
     函数体:一对{}包裹函数实现
 int add(int a , nit b)
 {
      int ret = a + b;
      return 0;
 }

  函数调用:包含函数名(实参列表)

实参:(实际参数)在调用时,传参必须严格按照形参填充,(参数个数,类型顺序)实现在调用时,没有类型指述符。

 int m = 20;
 int n = 34;
 inr ret = add(m, n);

函数声明:包含函数原型(返回值类型 + 函数名 + 形参列表)

 int add(int a, int b);

要求在函数调用之前,编译器必须是过函数定义,否则要求函数声明。如果没有函数声明,编译器默认“隐式声明”,编译器认为所有的函数,返回值都是int 可以根据函数调用,推断函数原则。

#include<xxx.h>内部,包含函数声明。

exit 函数

return 关键字,返回值当前函数调用,将返回值返回调用者(在底层,会调用exit() 函数)。

exit () 函数 : 退出当前程序

函数声明:

 //int test(int a, char ch);
 int test(int, char); //函数声明的简化写,声明时形参可以省略
 //函数调用
 int main(void)
 {
     int ret = test(10, 'a'); //test函数调用结束,return 给 main
     printf("test函数返回:ret = %d\n", ret);
     //return 0; //返回给调用者(启动例程)
     exit(0); //结束程序
 }
 //函数定义
 int test(int a, char ch);
 {
     printf("a = %d\n", a);
     printf("ch = %d\n", ch);
     exit(97); //使用#include(stdib.h)
 }

多文件编程

解决方案—右键—添加—新建项目

多文件—右键—设为启动项目

头文件守卫:为了防止头文件被重复包含

1):#pragma Once是VS自动生成的,只应用于windows系统

2):#ifndef HEAD_H

#define HEAD_H

头文件内容:#include<xxx.h>

//宏定义:#define PI 3.14

函数声明:类型定义:#endif

 #ifndef _HEAD_H_      //标准引入头文件
 #define _HEAD_H_
 //include 头文件
 #include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 #include<math.h>
 #include<time.h>
 //函数声明
 int add(int a, int b);
 int sub(int a, int b);
 //宏定义
 #define PI 3.14

类型定义:#endif

< > 包裹的是系统库头文件

“ ” 包裹的是,用户自定义头文件

// main 函数所在的 C · 头文件

#include " head.h";


往期精彩回顾