当前位置: 首页 > article >正文

【0239】从编译原理角度理解 #include “xxx“ 或 #include<xxx> 的实现机制

1. #include<>或#include" ",编译器都作了啥

C/C++开发中,通常将函数的声明、数据类型声明等放在xxx.h头文件中(比如:test.h),然后将函数的实现放在对应的xxx.c源文件中(比如:test.c)。当我们在.c源文件中 #include "test.h"之后,此.c文件中会增加什么内容? 编译器背后会做些什么?

本文将从编译器(预处理阶段)角度,详细讲解#inlcude"xxx.h"之后,xxx.c源文件的内容分布,以及实际项目开发中与此类相关的常见报错,及其对应解决方案。

2. demo演示分析

这里有3个文件,分别是:a.hb.hmain.c

  • 头文件
    • a.h
//filename: a.h
typedef struct {
   

http://www.kler.cn/a/146762.html

相关文章:

  • 新手如何练习SQL?|掌握
  • Windows service运行Django项目
  • C#,入门教程(27)——应用程序(Application)的基础知识
  • Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图
  • Qt 自动根据编译的dll或exe 将相关dll文件复制到目标文件夹
  • ctypes对接C/C++函数中char*输出型参数
  • 部署jekins遇到的问题
  • 初识Spring (Spring 核心与设计思想)
  • WEB渗透—反序列化(七)
  • 大数据-之LibrA数据库系统告警处理(ALM-37004 Datanode主备不同步或者断连)
  • CGAN原理讲解与源码
  • 机器人分类
  • zi定义指令
  • 【jvm】虚拟机之堆
  • Unity 场景切换
  • 【Java数据结构 -- 包装类和泛型】
  • 【教学类-06-11】20231126 X-Y数字分合-合-下空中
  • 常用数据存储格式介绍:Excel、CSV、JSON、XML
  • 从1500万行的表中删除数据,但要保留4万行,如何处理?
  • Redis深入理解-三次握手、槽位机制
  • QMenu 是 Qt 框架中的一个类,用于创建和管理弹出式菜单
  • 231127 刷题日报
  • 自定义的AlphaShape类来提取平面点云数据的边界点 open3d c++ 代码 平面点云边界提取算法
  • B 树和 B+树 的区别
  • MidJourney笔记(4)-settings
  • C#,《小白学程序》第八课:列表(List)其二,编制《高铁列车时刻表》与时间DateTime