首页 > 其他分享 >学C笔记归纳 第十二篇——函数2 声明和定义

学C笔记归纳 第十二篇——函数2 声明和定义

时间:2023-12-12 16:04:01浏览次数:32  
标签:第十二 头文件 函数 归纳 int 笔记 add 声明 定义

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

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

关于函数声明:

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

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

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

#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)售卖,买家难以破解复刻。

 

 

 

标签:第十二,头文件,函数,归纳,int,笔记,add,声明,定义
From: https://www.cnblogs.com/xiaowanglong/p/17897076.html

相关文章

  • [数字图像处理笔记] 第六章 图像复原
    1.图像复原及退化模型1.1图像复原图像复原:根据退化原因,建立相应的数学模型,从被污染或畸变的图像信号中提取所需要的信息,沿着使图像降质的逆过程恢复图像本来面貌。根据不同指标进行分类:在给定退化模型条件下:无约束和有约束根据是否需要外界干预:自动和交互根据处......
  • drf实战和源码剖析----学习笔记1
     学自:bilibili武沛齐老师.武老师讲课:清晰,连贯,实用,透彻,真乃名师!#1.什么是前后端分离-不分离,主要用于后台系统(CRUD)和用户量上的情况,开发起来代价小-分离,面向用户,大量,几十万-根据实际情况#2.什么是drf?作用是什么?#3.必备工具:postman做为后端开发人员,要......
  • SQL语句学习笔记
    目录SQL语句SQL详细名词和概念建表查询增加删除插入更新(更改)聚集函数多表查询视图存储过程SQL语句SQL详细名词和概念sql详细名词1.数据库内可以有多个表2.表的内部主要由键名和键值组成3.键有主键,外键和普通键三种类型4.主键唯一且不为空,但可以由两个键合起来作......
  • NodeJs学习笔记
    目录NodeJsBuffer(缓冲区)概念特点使用计算机基础进程与线程fs模块写入文件①.writeFile异步写入②.writeFileSync同步写入③.appendFile/appendFileSync追加写入④.createWriteStream流式写入需要写入文件的场景文件读取①.readFile异步读取②.readFileSync同步读......
  • js笔记
    js基础javascript是基于对象和事件驱动的脚本语言。//直接在页面中嵌入脚本<script>alert('弹窗警告');document.write("在浏览器上输出文字");console.log("这句话会在控制台显示,在浏览器上按f12呼出控制台");</script>//引用外部脚本,注意:此处只能使用相对路径,或网络路......
  • 42K+ star!开源Notion 平替笔记推荐
    IT咖啡馆,探索无限可能!恭喜你发现了这个宝藏,这里你会发现优质的开源项目、IT知识和有趣的内容。今天我们来推荐一款在GitHub超过43KStar的开源项目:AppFlowy。提到笔记和知识管理,很多人都会想到大名鼎鼎的Notion,无论是项目管理、笔记整理,还是团队合作,Notion都以直观、灵活的界面满......
  • 硬件开发笔记(十六):RK3568底板电路mipi摄像头接口原理图分析、mipi摄像头详解
    前言  本篇继续分析底板原理图mipi电路原理图、mipi摄像头输入硬件接口详解。<br>RK3568芯片摄像头接口  查看RK3568的芯片手册,摄像头接口并不支持直接sensor模拟信号输入,只能接收mipi信号,RK3568的摄像头接口引脚如下:    只支持mipi的数字信号摄像头。  本来计划......
  • 硬件开发笔记(十六):RK3568底板电路mipi摄像头接口原理图分析、mipi摄像头详解
    前言  本篇继续分析底板原理图mipi电路原理图、mipi摄像头输入硬件接口详解。 RK3568芯片摄像头接口  查看RK3568的芯片手册,摄像头接口并不支持直接sensor模拟信号输入,只能接收mipi信号,RK3568的摄像头接口引脚如下:    只支持mipi的数字信号摄像头。  本......
  • 《重构:改善既有代码的设计》读书笔记一
    一、重构原则1、重构定义重构:对软件内部结构的一种调整。目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。2、为何重构在开始说为何重构之前,先说一下很多程序员为何不喜欢重构。时间紧,一直忙着实现功能,觉得重构影响效率,而且重构不算绩效,简直吃力不讨好......
  • 笔记
    #03运行超市抹零结账行为#运行超市抹零结账的行为money_all=4758837.3847money_all_str=str(money_all)print("商品的总额为"+money_all_str)print("实际的收取的金额为:"+str(int(money_all))) # 04计算学生成绩的分差和平均分python=787english=9384c=90sub=p......