C语言文件包含

2023-11-12

一个C语言程序由若干源程序文件组成,而一个源文件还可以将另一个源文件的全部内容包含进来,即将指定的源文件包含在当前文件中。
例如:下有两个源文件file1.c和file2.c
file1.c

int max(int x, int y)
{
    int z;
    if(x>y) z=x;
    else z=y;
    return z;
}

file2.c

#include<stdio.h>
#include "file1.c"
void main()
{
    int a,b,c;
    printf("Input a,b:");
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("c=%d\n",c);
}

源文件file2.c中#include "file1.c"是一条文件包含命令,其作用是用文件file1.c的全部内容代替该命令行。
在一般情况下当需要将另一个文件的内容包含到当前文件中时,在文件的开始使用文件包含命令即可。文件包含命令的一般形式为:

#include <文件名> 
//或 
#include "文件名"

它的作用是用指定文件的全部内容代替文本文件中的这一行。其中,文件名指定的文件是由C语句和编译预处理命令组成的文本文件。
说明:
1.使用文件名用尖括号<>括住时,预处理程序仅在系统指定的磁盘和路径下搜索包含文件。若在系统指定的磁盘和路径下搜索不到被包含文件,将给出文件不能打开的错误信息。使用文件名用双引号""引起来时,则首先在当前目录中搜索要包含的文件,若找不到再在系统指定的路径下搜索。
如果是在同一个路径下可直接使用上述格式,不在同一目录文件下应当指明文件路径,一般自己编写的文件应用推荐使用后一种(用双引号引起来的)格式去引用。
例如:

#include "文件路径/文件名"

2.C编译系统提供了大量后缀为.h的文件,通常保存在编译系统文件所在目录的下级目录(如:…\include)中。这些文件的内容包括常量定义、带参数宏的定义、库函数的函数原型及系统中固定使用的结构体或共用体的类型定义等。这些文件的内容一般要求放在源程序的开头,所以把它们称为“头文件”。编写程序时,若需要这些文件中的常量定义、函数声明、类型定义等内容。就用包含命令将其包含进来,避免重复编写。
3.用户常用的一些符号常量和带参数的宏可单独存放在一个文件中。
例如:
file0.h

#include PI 3.14159
#include G 9.18
#include E 2.71828
#include MAX(a, b) a>b?a:b

把这些宏定义命令存放在一个文件中,需要这些常量时,就将这个文件包含到写的源程序中。
4.一个包含命令只能包含一个文件,要包含多个文件时,需使用多个包含命令。
5.被包含文件的内容必须是C语言程序。
6.有多个文件组成的C语言程序可以使用文件包含命令合并成一个较大的文件后,再进行编译运行。
例如:
file.c:

#include "file1.c"
#include "file2.c"
#include "file3.c"

文件file.c是由文件file1.c、file2.c、file3.c合并而成的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言文件包含 的相关文章

  • 阿里带火的中台到底是什么?白话中台战略

    作者 王健 ThoughtWorks首席咨询师 十多年国内外大型企业软件设计开发 团队组织转型经验 一直保持着对技术的热爱 热衷于技术分享 目前专注在企业平台化转型 中台战略规划 微服务架构与实施 大型遗留系统服务化改造 敏捷精益转型 以及
  • IOS工程添加目录

    问题 ios工程和资源工程是分开的 需要将工程外的一个文件夹导入到ios工程中 以前是直接拷贝一份放在frameworks runtime src proj ios mac中 这样操作的缺点就是 修改了公共的资源后 还需要再修改ios工程下
  • 微信小程序的computed的使用

    1 官方参考地址 computed 微信开放文档 qq com 2 自定义组件component和behaviors component参考地址 自定义组件 微信开放文档 qq com behaviors参考地址 behaviors 微信开
  • Solidity中引入的SPDX是什么

    Solidity中引入的SPDX是什么 起因 Solidity 0 6 8 要求引入 SPDX 许可证 否则会出现警告 Warning SPDX license identifier not provided in source file
  • MyBatis万能插入语句

    MyBatis万能插入语句 前言 最近需要做一个动态新增数据的接口 表名 列名 数据都是动态传进来的 需要一个接口就可以把所有表数据新增成功 第一种方式 首先看Mapper dao层 接口 插入数据 param tableName 表名 p

随机推荐