C语言include语法,h文件和c文件的关系

文件 c语言 include 编程技术
发布日期 2023-06-06 更新日期 2023-06-06 阅读次数 96 文章字数 880

.h和.c后缀结尾的文件都是C语言的源文件,都可以写任意语法的C语言代码。

但是通常我们会把定义写在h文件上,实现写在c文件上。

并且,一个默认的约定是,当你include一个h文件,它会自动寻找对应的c文件【一般是同位置,同名不同后缀,这取决于编译器的设定】,就像复制粘贴一样把c文件的内容和h文件合并到源码中。

include语法

include用于包含头文件

include 的用法有两种,如下所示:

#include <stdHeader.h>
#include "myHeader.h"

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

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

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

对于标准的系统头文件,一般推荐使用<>引入,自定义文件则使用双引号引入,这样容易区分文件类型。

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

  • 一个 #include 命令只能包含一个头文件,多个头文件需要多个 #include 命令。
  • 同一个头文件可以被多次引入,多次引入的效果和一次引入的效果相同,因为头文件在代码层面有防止重复引入的机制
  • 文件包含允许嵌套,也就是说在一个被包含的文件中又可以包含另一个文件。

代码分离示例

创建三个文件,分别是my.h【被引入的头文件】,my.c【被引入的c文件】,main.c【主文件】

my.c 所包含的代码:

//计算从m加到n的和
int sum(int m, int n) {
    int i, sum = 0;
    for (i = m; i <= n; i++) {
        sum += i;
    }
    return sum;
}

my.h 所包含的代码:

//声明函数
int sum(int m, int n);

main.c 所包含的代码:

#include <stdio.h>
#include "my.h"
int main() {
    printf("%d
", sum(1, 100));
    return 0;
}

不同的编辑器,编译可能不同,以gcc编辑器为例,编译上述3个文件,得到main.out【linux下后缀一般是out,windows下则是exe文件】然后直接执行即可

gcc my.h my.c main.c -o main.out

文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-429.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

文件 c语言 include

发表评论

相关推荐
朱丰华   |   7个月前   |   git

git从缓存中移除数据git rm --cached

408    评论    点赞
朱丰华   |   1年前   |   linux · upx

Linux下安装UPX

406    评论    点赞
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

172    评论    点赞
朱丰华   |   1年前   |   php · 缓存 · opcache

php 加速、提高并发opcache

198    评论    点赞
朱丰华   |   1年前   |   go · gopath

Go自定义包并安装(GOPATH)

117    评论    点赞
朱丰华   |   1年前   |   变量 · mysql · sql · 用户

MySQL用户自定义变量

94    评论    点赞
朱丰华   |   1年前   |   sql · php

PHP如何使用PDO批量执行SQL?

114    评论    点赞
朱丰华   |   1年前   |   sed · 文件

Shell 指定行处理head、tail、sed

155    评论    点赞
朱丰华   |   1年前   |   linux · 内容

linux环境下,对于一个大文件,如何查看其中某行的内容

68    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 行数

linux 取得文件行数

49    评论    点赞
朱丰华   |   1年前   |   下载 · 请求

idm、浏览器下载发送两次下载请求

137    评论    点赞
朱丰华   |   1年前   |   文件 · linux · 修改

linux文件的三个时间atime,mtime,ctime分别表示什么?

274    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 统计

linux递归统计文件夹下的文件数量

165    评论    点赞
朱丰华   |   1年前   |   linux · 文件

linux递归统计文件夹大小、du命令_Linux du命令:查看文件夹和文件的磁盘占用情况

193    评论    点赞
朱丰华   |   1年前   |   git · add · 文件

git add -A 和 git add . 的区别

112    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

157    评论    点赞
朱丰华   |   1年前   |   linux · php

linux下编写、编译php扩展

150    评论    点赞
朱丰华   |   1年前   |   html

npm clean-mark,抓取网页文章内容,转换成markdown、html、txt

191    评论    点赞
朱丰华   |   1年前   |   js · export · import

js es6 export,import,export default的用法和区别

124    评论    点赞
朱丰华   |   1年前   |   c语言 · 编译

C语言中预编译#if的使用

75    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞