ch04 function

concept [1]

函数 (function) 是执行任务的语句块。

函数的作用

  • 提高代码的可重用性并减少冗余
  • 代码模块化
  • 代码易读性
  • 使代码模块化

函数的分类

C语言中有两种类型的函数:

  • 标准库函数:C中的内置函数,在头文件中定义
    • #include <stdio.h>
  • 用户自定义函数:用户自定义的函数
    • #include "stdio.h"

函数三部曲

C语言中函数分为三个方面,声明(declaration),定义(defining),调用(calling)

声明

声明是让编译器知道函数的名称、参数信息、参数的返回值的类型。

(type) function_name({type args...});

隐式声明(implicit) :当在main之后定义的函数而未声明,默认编译器会做隐式声明。

ISO/IEC 9899:1990 中 关于函数声明的部分:

函数在调用前必须有一个可用的声明,如果没有被声明,则该函数默认被隐式声明,该隐式声明没有参数,返回值为int [2]

定义

C中函数定义的语法如下

return_type function_name(arg1, arg2, ... argn)
{
	function body // 函数中要处理任务的逻辑
}
  • return_type:函数返回值的数据类型
  • function_name:函数名
  • arg1, arg2, …argn:参数列表(可选),定义传递给函数的数据类型、顺序和参数的数量。
  • function body:调用函数时任务处理和执行的语句

调用

调用是指要由编译器执行的函数,可以在任何部分调用

虚函数

如果函数没有返回值,则使用关键字 void,主要用于两个方面:

  • 打印具体信息供用户阅读的函数
  • 引用参数,函数通常不是用于返回一个内容,而是修改引用参数的,无需返回值

函数的退出

  • exit() 是一个终止当前进程的系统调用(无论在代码哪里调用);非C语言内置功能
  • return:向调用函数提供退出状态并将控制权返回给调用函数,C语言内置功能

多文件编程 [3]

多文件程序(multi-file) 是指多个含有不同功能的代码文件( .c 文件模块),编译到一起,生成一个二进制文件。

通常包含三部分:

  • 编译:通过编译器编译多个文件程序

  • 函数原型(声明):告知编译器如何使用,表现为:

    • 函数在一个文件中定义,在另一个文件中调用
    • 想对文件中的函数重新排序
    • 函数相互调用,递归
  • 头文件:使多个文件中的函数可以访问定义和声明,通常情况下包含:

    • 全局变量和全局常量
    • 类,结构体,联合体,枚举等
    • 创建类型名称的 typedef 语句
    • 函数声明
    • 包含其他文件的语句,如math.h

防止头文件重复包含

windows

#pragma once

linux

#ifndef __HEAD_H__
#define __HEAD_H__

.... head file body

#endif

Reference

[1] c function

[2] Are prototypes required for all functions in C89, C90 or C99?

[3] multi-file

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hermokrates

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值