#include < > 和#include ” ”有什么区别?

news/2024/7/10 20:15:01 标签: linux, 运维, 服务器, 学习, 开源

C语言头文件

C语言中头文件的扩展名为 .h的头文件,头文件中包含了函数的声明和宏定义,头文件可以被多个源文件引用。在C语言中有两种类型的头文件,一种是编译器自带的头文件,另一种就是程序员自己编写的头文件。

在C程序中如果要使用头文件,则必须使用头文件包含命令 #include ,来引入对应的头文件(.h文件)。#include 是C语言预处理指令的一种。

#include 的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件,这与复制粘贴的效果相同。

引用头文件的语法

使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种:

#include 

这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。在编译源代码时,通过 -I 选项把目录前置在该列表前。

#include "file"

这种形式用于引用用户头文件。它在包含当前文件的目录中搜索名为 file 的文件。在编译源代码时,通过 -I 选项把目录前置在该列表前。

使用尖括号< >和双引号" "的区别在于头文件的搜索路径不同:

使用尖括号< >,编译器会到系统路径下查找头文件;

而使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。

也就是说,使用双引号比使用尖括号多了一个查找路径,它的功能更为强大。

在C语言编程中,我们习惯使用尖括号来引入标准头文件,而使用双引号来引入自定义头文件(自己编写的头文件),这样一眼就能看出头文件的区别。

关于 #include 用法的注意事项:

一个 #include 命令只能包含一个头文件,多个头文件需要多个 #include 命令。

同一个头文件可以被多次引入,多次引入的效果和一次引入的效果相同,因为头文件在代码层面有防止重复引入的机制。

#ifndef _HEAD_H

#define _HEAD_H

#endif

文件包含允许嵌套,也就是说在一个被包含的文件中又可以包含另一个文件。

#include 用法举例

在add.c中定义了add()函数,在head.h中声明了add()函数,main.c中,#include引用标准输入输出头文件,#include”head.h”引用我们自己写的head.h头文件,main()函数是程序的入口,printf()函数是标准输出函数,它的作用是向终端输出若干个任意类型的数据,add()函数在add.c中定义了,在main.c中的main()函数中进行了调用。

对嵌入式物联网感兴趣的小伙伴,可以多了解一下相关信息。(看过来)

 


http://www.niftyadmin.cn/n/425487.html

相关文章

面试官再问分布式事务,三天吃透这份至尊级学习笔记怼他

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说&#xff0c;就是一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务器上&#xff0c;且属于不同的应用&#xff0c;分布式…

1.2 几种常用的数制

学习目标&#xff1a; 学习几种常用的数制可以通过以下步骤进行&#xff1a; 1. 确定目标数制&#xff1a;常用的数制包括十进制、二进制、八进制和十六进制。首先&#xff0c;确定你想要学习的数制是哪一种。 2. 理解基本概念&#xff1a;了解每种数制的基本概念是非常重要…

git使用revert撤销已提交的远程合并

使用背景 目前这家公司有 dev&#xff0c;test两个分支。 我接到新需求&#xff0c;于是建了新的业务分支 branch1。因为需要和前端联调需要把接口发布到开发环境&#xff0c;然后就把 branch1 的分支合并到 dev 分支。并且 push 到仓库了。 可是&#xff0c;据了解&#xf…

Linux内核中内存管理相关配置项的详细解析8

接前一篇文章&#xff1a;Linux内核中内存管理相关配置项的详细解析7 十一、Enable KSM for page merging 对应配置变量为&#xff1a;CONFIG_KSM。 此项只有选中和不选中两种状态&#xff0c;默认为选中。 内核源码详细解释为&#xff1a; Enable Kernel Samepage Merging:…

加密与解密 调试篇 动态调试技术 (四)-x64dbg/MDebug

x64dbg是开源的调试器 支持 32位和64位 Download x64dbg 我们使用64位程序进行实验 加载TraceMe64 然后我们通过之前了解到了 TraceMe是用 GetDlgItemTextA来读取我们输入的值 所以我们在x64dbg中对其进行断点 但是我们先要设置 x64dbg在加载程序的时候是在系统断点处所…

Axure教程—穿梭框(中继器+动态面板)

本文将教大家如何用AXURE中动态面板和中继器制作穿梭框效果 一、效果 预览地址&#xff1a;https://8k99mh.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87897661?spm1001.2014.3001.5503 二、功能 在待选区域选项中可以选择一个选…

【语音之家】AI产业沙龙 —— 解读火山语音团队在国际顶会ACL2023的创新突破

由CCF语音对话与听觉专委会 、中国人工智能产业发展联盟&#xff08;AIIA&#xff09;评估组、火山语音、语音之家、希尔贝壳共同主办的【语音之家】AI产业沙龙——解读火山语音团队在国际顶会ACL2023的创新突破&#xff0c;将于2023年6月14日19:00-20:20线上直播。 沙龙简介 …

Python开源自动化工具Playwright安装及介绍

目录 前言 1、Playwright介绍 2、Playwright安装 3、实操演示 4、小结 总结&#xff1a; 前言 微软开源了一个非常强大的自动化项目叫 playwright-python 它支持主流的浏览器&#xff0c;包含&#xff1a;Chrome、Firefox、Safari、Microsoft Edge 等&#xff0c;同时支…