今天我在看代码的时候突然看到在一个.c文件中包含了#include "*.c"代码,这个让我很诧异,然后google了一下,才发现是这么回事情,下面我写了一个测试代码,我相信你看完本篇文章就应该理解#include "*.c"文件的用法了。

测试代码如下:

main.c文件:

print.c文件如下:

这个两个代码必须放在同一目录下,但是测试时编译出错误了,大家别急,下面是我更新了的main.c文件。

main.c文件:

对比上面的两个main.c文件!

测试编译并成功打印this is test!   ,这里就可以看出差别了,我只是更换了一下#include"print.c"  的位置,结果差距就这么大,这里我解释一下#include "*.c"的作用,其实它就是一个文件其中任何部位都可以剪切出去,然后组成一个单独的.c文件,然后在原来剪切的部分添加#include "*.c"我们保存的.c文件就行了。

我相信通过以上的代码大家也应该明白#include "*.c"的用法了吧!

我们知道,通过#include "*.h"可以引用其它源文件中导出的符号,而通过使用#include "*.c"文件可以控制要将哪些源文件编译到工程中。因此,在大型的项目中,如果我们要测试不同的功能,可以为每个功能建立一个.c类型的配置文件,在该配置文件中将需要编译的功能.c文件#include进来就OK,而不用麻烦地在每次测试不同功能时都重复的把旧的功能文件删除,再添加新的功能文件。通过控制要编译的文件,可以减少最终生成代码的代码段长度,节省存储空间。许多程序设计人员没有丝毫的节省存储空间的概念,经常把与工程无关的文件包含到工程中。

参考链接:https://blog.csdn.net/qq_21792169/article/details/50896445

#include *.c文件的妙用相关推荐

  1. #include quot;*.cquot;文件的妙用

    今天我在看代码的时候突然看到在一个.c文件中包含了#include "*.c"代码,这个让我很诧异,然后google了一下,才发现是这么回事情,下面我写了一个测试代码,我相信你看完 ...

  2. php+include+引入html文件,include引入文件

    php include引入文件问题 include __DIR__ . ' ../lianxi1.php'; 为什么..前面不加/不对 lianxi前include函数是引入文件 命名空间解决的是同一 ...

  3. (8)Verilog include 头文件使用路径(FPGA不积跬步101)

    名言:相信自己,心有多大,舞台就有多大! 1 问题描述 在Quartus.ISE.vivado等开发工具下,使用include头文件时,会涉及到文件路径问题.如果不添加文件路径,编译时会报错误. 2 ...

  4. 第五章:B视频Include包含文件

    今天给大家讲解一下Include包含文件 官网地址:https://www.w3soft.cn/codegenerator 视频教程如下 点我播放视频教程 操作代码 文件名: include生成文件 ...

  5. c++ 头文件的创建和使用,头文件与源文件的命名关系,#include <头文件> 和 #include “头文件“的关系

    创建头文件的三个步骤 以实现一个swap函数为例: 1.创建一个.h的头文件:里面允许存放类声明和函数声明 // swap.h #pragma oncevoid swaps(int a, int b) ...

  6. C++源文件 include头文件

    C++源文件从文本到可执行文件经历的过程? 对于C++源文件,从文本到可执行文件一般需要四个过程: 预处理阶段:对源代码文件中文件包含关系(头文件).预编译语句(宏定义)进行分析和替换,生成预编译文件 ...

  7. ISE include 头文件错误的解决办法

    在ISE 14.7里面,如果hdl的头文件和verilog文件不在同一个文件夹下,直接添加文件就会i包含失败,而且无法实现综合.错误代码是  ERROR:HDLCompiler:281 :ERROR: ...

  8. 两次include一个文件的问题

    为什么80%的码农都做不了架构师?>>>    当两次去include包含一个文件时就会出现一种奇怪的现象,没有任何报错,浏览器一片空白,且http状态码是200,今日写程序无意发现 ...

  9. 关于#include头文件问题

           STL编程的次要麻烦之一是虽然可以很容易地建立可以在一个平台上编译的软件,但在其它平台上则需要附加的#include指示.这个烦恼来自一个事实:C++标准(不像C标准)未能指定哪一个标准 ...

最新文章

  1. 6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias
  2. jdbctemplate 开启事务_来,讲讲Spring事务有哪些坑?
  3. Keepalived工作原理
  4. vue-element-admin 1.4问题及解决方案
  5. maven环境下,控制台中文乱码
  6. Asp.net就业课之Ado.net第一次课
  7. HTML5 音频 audio
  8. 迁移到其他机器_有赞大数据离线集群迁移实战
  9. for ihs linux_在IBM的IHS上编译PHP(redhat 5.5 64位的环境)
  10. LT8619B 产品功能概述 HDMI1080P转BT1120
  11. 三维错切变换矩阵_三维基本几何变换矩阵.PPT
  12. TortoiseHg笔记
  13. 用c语言实现动态优先权调度,实验四使用动态优先权的进程调度算法的模拟..doc...
  14. Focal loss分析
  15. 鸿蒙无法使用安卓应用市场,关于华为鸿蒙兼容安卓应用的原因与思考
  16. 拉格朗日乘数法求可能极值
  17. 如何让Markdown 表格整体居中?
  18. 千里走单骑:02-北京到上海骑记--Day1.首日征程
  19. GitChat·技术管理 | Cynefin 框架和不确定性管理思维
  20. Linux 研发环境工具 下载网址大全

热门文章

  1. Spring Cloud中Eureka开启密码认证----(springcloud配置系列一)
  2. PooledByteBuf源码分析
  3. 搜索引擎设计实用教程(1)-以百度为例
  4. 【附超时原因】1055 The World‘s Richest (25 分)_42行代码AC
  5. 【已解决】[Error] cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_s
  6. 专科学历事业单位工资计算机,事业单位人来告诉你:学历跟入编之后待遇关系有多大!很直接...
  7. python 通登录银行_Python3 适合初学者学习的银行账户登录系统实例
  8. python笔记之利用BeautifulSoup爬取糗事百科首页段子
  9. 如何让Jtable不可编辑?(
  10. html 搜索框 自动补全,自动完成的搜索框javascript实现