C语言从头学05——头文件及库文件

       我们写"Hello World!"程序时,一上来先写了一句代码:

#include <stdio.h>

       我们看上面这条代码,前面有个"#"号后边没有";"号,这样的代码不是普通的C语言代码,它属于预处理命令。这条代码的含义是包含"stdio.h"这个头文件。
       我们编写C语言程序,程序要用到的功能肯定不都是我们从头写的,那样太麻烦了。许多功能C语言已经自带了,我们需要什么功能去调用就行了。例如printf()函数就是C语言自带的,我们直接使用即可。C语言自带的这些功能存放在哪里呢?它们都存放在标准库中。标准库是由许多的文件组成的,这些文件有不同功能的定义,把某一类功能打包到一个文件中我们就称这个文件为xx头文件、库文件。比如printf()这个函数就定义stdio.h这个头文件中,编程中要想使用printf()先包含这个头文件。头文件的后缀是".h"。
       我们把#include <xx.h>命令称为包含xx头文件,等后边我们学习"预处理器"相关内容再往细处理解include命令。如果我们在编程中有报错"未定义标识符",首先检查是否拼写错了,如不是就要检查是否包含了相关的头文件。我们自己也可以写自己的头文件,使用时把这个头文件包含进来,就不用重新敲代码了。
       实际上,头文件中只是函数的声明,而函数的实现在库文件中。 在C语言中,头文件是可读的,而库文件是以二进制编码形式存储的。对于C语言自身的头文件和库文件,当我们使用某函数时只要我们在代码中包含了相关的头文件后,编译器会自动通过头文件找到库文件,把需要的内容编译到我们的程序中,不需要我们再考虑。
       而对于某些与C语言共享的头文件和库文件,我们在使用时,不仅要包含头文件,还要导入相关的库文件。比如,当在程序中想要使用背景音乐时就是这样,看例子:

  #include "mmsystem.h" //包含与音乐相关的头文件#pragma comment(lib,"winmm.lib") //导入库文件

       提醒注意,包含系统提供的头文件用一对尖括号括起文件名,包含我们自己写的头文件或其它外来头文件时要使用双引号引起来,这是区别。stdio.h这个头文件几乎包含初学者用到的所有功能,所以开始阶段只要包含了这个头文件就可以进行我们的学习了。其它头文件随着学习的深入一点点掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第六天| 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

哈希表理论基础 [LeetCode] 242. 有效的字母异位词 [LeetCode] 242. 有效的字母异位词 文章解释 [LeetCode] 242. 有效的字母异位词 视频解释 题目: 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出…

JavaEE技术之SpringCloud(Nacos注册中心、Nacos配置中心、Sentinel实现熔断与限流)

文章目录 SpringCloud Alibaba1、简介1.1 背景1.2 Nacos主要功能1.3 Nacos和SpringBoot、SpringCloud版本选择 2、Nacos注册中心2.1 案例准备2.2 Nacos注册中心下载启动2.2.1 下载2.2.2 解压启动2.2.3 nacos-server访问测试 2.3 nacos注册中心客户端整合2.3.1 订单服务整合naco…

YTU 3166 共享单车 DFS 记忆化搜索

问题 D: 共享单车 题目描述 共享单车走进烟台&#xff0c;小明决定尝试。小明启动共享单车 App&#xff0c;轻松地找到附近的单车。那么问题来了&#xff0c;到最近的那辆单车&#xff0c;小明大约要走多少米呢&#xff1f; 现在简化问题。将地图设定成一个由 100100 米的像…

【UE】仿原神实现无限道路延伸的开场效果

目录 效果 步骤 一、无限生成砖块 二、制作门 三、停止移动并生成门 四、进入门 效果 步骤 一、无限生成砖块 1. 新建一个Basic关卡&#xff0c;再新建一个Pawn类&#xff0c;这里命名为“BP_MyPawn” 打开“BP_MyPawn”&#xff0c;添加一个胶囊体碰撞组件和一个摄像…

工器具管理(基于若依)

文章目录 前言一、工器具管理项目总览 二、入库功能1. 前端1.1 界面展示1.2 具体操作实现1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具入库 三、领用功能1. 前端1.1 界面展示1.2 具体实现操作1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具领用 遇到的问题1. 同一页面展示…

pat乙1033-旧键盘打字

1测试点2&#xff1a; 输入的字符串如果为空&#xff0c;要用getline(cin,s)&#xff0c;而不是cin>>s&#xff0c;否则程序做不了 2题目说的如果上键坏了那大写字母打印不了&#xff0c;不是大写转小写打印啦&#xff0c;认真读题 3两个for循环长这样&#xff0c;break…

基于springboot+vue的自习室管理和预约系统(全套)

一、系统架构 前端&#xff1a;vue | element-ui | html 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页2 03. web端-注册 04. web端-登录 05. w…

牛客Linux高并发服务器开发学习第六天

目录相关函数 学习进度&#xff1a; Linux系统编程入门 06&#xff1a;59&#xff1a;42

Apollo9.0 Control模块算法源码学习

参考资料 Apollo控制算法_哔哩哔哩_bilibili

Python自动化测试 | 如何使用Robot Framework进行自动化测试?

你还在手动测试&#xff1f;不妨了解一下更高效、准确且简单的测试方法——使用Python的Robot Framework进行自动化测试。 什么是Robot Framework&#xff1f; Robot Framework是一款开源的Python自动化测试框架&#xff0c;它基于关键字驱动的思想&#xff0c;具有易读、易扩…

每日一题 城市群的数量

题目解析 城市群数量_牛客题霸_牛客网 当解决这个问题时&#xff0c;首先需要理解题目要求。题目中给出了一个城市之间的邻接矩阵&#xff0c;矩阵中的元素表示城市之间是否直接相连。如果两个城市直接相连&#xff0c;或者通过其他城市间接相连&#xff0c;它们就属于同一个城…

算法学习笔记(匈牙利算法)

匈牙利算法可以求解二分图的最大匹配问题&#xff08;二分图&#xff1a;如果无向图 G ( V , E ) G (V, E) G(V,E)的所有点可以分为两个集合 V 1 、 V 2 V_1、V_2 V1​、V2​&#xff0c;所有的边都在 V 1 V_1 V1​和 V 2 V_2 V2​之间&#xff0c;而 V 1 V_1 V1​或 V 2 V_2…

深入理解Python的类,实例和type函数

问题起源&#xff1a; class t():pass s1 t() s2 type("Student2",(),{}) isinstance(s1, type), isinstance(s2, type)为什么第一个是false&#xff0c;第二个是true呢 根因定位&#xff1a; 在Python中&#xff0c;一切皆对象&#xff0c;类是对象&#xff0c…

nacos在没有指定数据源的情况下默认使用什么数据库?

在没有特别指定数据源的情况下&#xff0c;Nacos 默认使用内嵌的数据库 Derby 来存储其数据。Derby 是一个轻量级的、基于 Java 的数据库管理系统&#xff0c;适合于开发和测试环境&#xff0c;因为它简单易部署且无需额外的数据库服务器。然而&#xff0c;对于生产环境&#x…

使用ORM快速获取业务对象列表

通常在实际开发中&#xff0c;业务对象的信息是需要来自多个数据表的。 我们如果想要获取这个业务对象&#xff0c;就要先查询数据表&#xff0c;再把查询到的数据依次循环&#xff0c;组合转换封装成业务要使用的对象类型列表。 如果使用了ORM&#xff0c;那么这个过程就可以简…

Stability AI 推出 Stable Artisan,终于可以在Discord上使用Stable Diffusion了!

Stable Diffusion 社区最常见的要求之一是能够直接在 Discord 上使用他们的模型。近期&#xff0c;Stability AI 推出 Stable Artisan&#xff0c;这个需求终于被实现了。 Stable Artisan 支持在 Discord 上生成媒体&#xff0c;由 Stability AI 的尖端图像和视频模型 Stable D…

基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的实习生管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

mysql group by使用方法实例讲解

MySQL中GROUP BY语句用于对某个或某些字段查询分组&#xff0c;并返回重复记录的第一条&#xff0c;本文章通过实例向大家介绍mysql group by使用方法和需要注意的地方&#xff0c;感兴趣的朋友可以参考一下。 现在有这样一个数据表book idfirst_namelast_namecityage1JasonM…

知乎知+广告推广该如何做?怎么收费?

知乎作为一个汇聚高质量用户群体的知识分享平台&#xff0c;成为了众多品牌和产品推广的优选之地。特别是知乎的“知”广告推广服务&#xff0c;以其精准定向、内容原生的特点&#xff0c;深受广告主青睐。 一、知乎知广告推广基础 1. 什么是知乎知&#xff1f; 知是知乎官方…

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string&#xff1a;C初阶学习第六弹——string&#xff08;1&#xff09;——标准库中的string类-CSDN博客 前言&#xff1a; 在前面我们已经学习了如何使用标准库中的string类&#xff0c;但作为一个合格的程序员&#xff0c;我们不仅要会用&#xff0c;还要知道如…