函数功能越单一,可移植性越强——“高内聚低耦合”;

函数可以嵌套调用,不可以嵌套定义;

关于函数声明:

        告诉编译器函数名、参数、返回类型,但函数具体存在由函数定义决定;

        函数声明一般出现在函数使用之前,要满足先声明后使用;

        函数声明一般放在头文件中。(单片机常用)

复制代码
#include <stdio.h>

//函数声明
int add(int x, int y);

int main()
{
    int a = 1;
    int b = 10;
    printf("%d\n", add(a, b));
    return 0;
}

//函数定义
int add(int x, int y)
{
    return x + y;
}

 

 
复制代码

 

以add函数为例,一个项目,头文件内创建 .h文件add函数声明

源文件内创建两个.c文件,一个放main函数,一个放add函数定义

在main函数中调用add函数时,在之前“   #include "add.h"   ”,便可正常使用add函数。

这样add函数的声明和定义我们将之称为模块 ,使用时包含其头文件即可,自己写的头文件用双引号。

 工作中从协作角度需要 模块化编程,每人编写功能模块,拼接成一个项目。

 

#pragma once  防止头文件被重复包含。

#include "add.h" 就是将头文件里内容全部拷贝,而头文件里是函数声明,包含头文件就相当于函数声明。

这种方法还有商业价值:将add.c、add.h封装成静态库(.lib)售卖,买家难以破解复刻。