当前位置: 首页 > 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

相关文章:

  • Pandas学习
  • Spark RDD 的 combineByKey、cogroup 和 compute 算子的作用
  • Web3浪潮下的区块链应用:从理论到实践的全面解析
  • Django5 2024全栈开发指南(二):Django项目配置详解
  • 经验笔记:Git 基础操作指南
  • PyTorch使用教程-深度学习框架
  • 部署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