在我们组织项目结构的时候,如果单纯的使用源文件,项目越大越复杂的时候,维护成本就会变得越来越高

为了解决这个问题,就诞生了头文件这个东西,头文件后缀名为.h

使用了头文件来组织项目结构的时候,减少大型项目的维护成本问题

也就是说,在我们写的一些代码比较复杂,比较长,写一些项目的时候,我们可以使用多文件编写,其中就要用到头文件

头文件主要有一下功能

1.所有变量的声明

2.所有函数的声明

3.可以宏定义,定义typedef,struct类型等

如果其它文件需要使用头文件内容,引用一下头文件既可

有时我们使用多文件编写的时候,可能会遇到一个问题,就是报错说头文件被重复包含

我们只需要在头文件里的开头加上 #pragma once即可

源文件主函数部分

#include"test.h"
extern int g_val;
int main()
{printf("%d\n", g_val);show();
}

另一个源文件

#include"test.h"int g_val = 10;
void show()
{printf("hello");}

头文件

#pragma once
//1.C语言头文件
//2。所有的变量的声明
//2.所有的函数的声明
// #define 类型typedef struct
//包含自定义的头文件,使用""
#include<stdio.h>
extern int g_val;
void show();

C语言头文件的作用和声明相关推荐

  1. c语言头文件的作用,C语言头文件作用是什么?

    C语言头文件有什么作用呢?本文以hello world这个程序为例,相信很多朋友都疑惑:明明就显示一句话"Hello world"竟然足足写了五六行代码,而真正有用的可能就那句pr ...

  2. c语言程序头文件作用,C语言头文件

    C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...

  3. C语言.h文件的作用

    转载自此 总结在前面的话: 顶层的函数与变量默认extern修饰(C99内), 非本文件夹内的函数引用加上external修饰:非定义处的变量加上extern修饰(建议这么做,用以区分变量定义与变量引 ...

  4. C、c++ .h 头文件的作用

    C语言头文件的作用 C语言头文件的作用 最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题. 学习C语言已经有好几年了,工作使用也近半年了,但是对于这部分 ...

  5. 详解C语言中头文件的作用

    大家好,先做个自我介绍,我是天蓬,欢迎阅读本篇博文. 由于本人理解能力不是很好,阅读他人文章时,常常看得晕头晕脑,这让我很是头疼,我想,世界上一定还有和我一样的人(哈哈,不是说你么笨哦).所以,我将会 ...

  6. C语言头文件深入理解

    C语言程序中,源文件通常分为两种:一种用于保存程序的声明(declaration),称为头文件:另一种用于保存程序的实现(implementation),称为定义(definition)文件. C程序 ...

  7. C/C++ 头文件的作用和用法

    示例代码编译运行环境:Windows 64bits+VS2017+Debug+Win32. 头文件是 C/C++ 程序不可或缺的组成部分,我们需要了解头文件的作用和相关规范. 1.头文件的作用 C/C ...

  8. 嵌入式linux头文件,飞凌嵌入式知识汇092期:C工程的组织方式(头文件的功能)以及Linux下常用的头文件的作用...

    1.1每个C++/C程序通常分为两个文件.一个文件用于保存程序的声明(declaration),称为头文件.另一个文件用于保存程序的实现(implementation),称为定义(definition ...

  9. Linux中常用头文件的作用--转

    http://blog.sina.com.cn/s/blog_5c93b2ab0100q62k.html 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言 ...

  10. Linux中常用C/C++一些头文件的作用

    2019独角兽企业重金招聘Python工程师标准>>> 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言,assert(表达式) < ...

最新文章

  1. Gradient Descent梯度下降(透彻分析)
  2. butterKnife@BindView报错: If this view is optional add '@Nullable' annotation
  3. ReactOS 0.4.11 发布,Windows 系统的开源替代方案
  4. mac下git与github简单使用
  5. python2中的print语句可以不用小括号。_Python 2与Python 3的区别
  6. php cms使用视频教程,PHPCMS v9视频模块使用教程二
  7. hdu 4831(线段树---待解决)
  8. 【Notes9】Linux系统启动过程,数据库,驱动,i2c-tools,shell
  9. ABAP 代码中,哪些特殊字符不能用于变量命名?
  10. 插入的数据不能时时查询到_数据库原理笔记
  11. 在集设浏览学习高水准海报设计,会带给你不一样的灵感!
  12. TempData[a]多个Action方法之前共享数据
  13. 『西少爷们』除了炒作,还有什么?
  14. Linux查看系统自启动服务
  15. 超炫酷html+css+javascript实现登录模板
  16. 含根式的定积分计算_三种方式计算不定积分∫x√(x+1)dx。
  17. 钢铁表面缺陷检测图像数据集(1800张图像,voc标签)
  18. nodejs+express+mysql实现图片上传
  19. 常见的字符串的特殊字符处理之英文双引号替换成中文双引号
  20. C# 最全面透彻的RabbitMQ指南

热门文章

  1. 如何将在不同文件夹下的批量plt文件转换为txt文件--python
  2. 步进电机驱动器细分原理_步进驱动器细分设置表说明
  3. Arduino - CHQ1838B红外接收模块控制LED实验(附.Tinkercad图形化编程)
  4. 实验室计算机维修申请条件,计算机实验室管理制度
  5. JS 微信emoji表情数组
  6. 云主机管理系统源码php,云优CMS PHP企业网站管理系统(分站版) v2.0.8
  7. 阿里云短信验证第三方接口(快速使用)
  8. 【中间件技术】第一部分 概述(1) 软件构件与中间件基本概念
  9. 批处理跑Axapta多个主计划
  10. qt html ui,DSkin 的WebUI开发模式介绍,Html快速开发Winform的UI