C语言在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
双结构体运用(有自定义函数版) 发布于:2025-11-21 15:02 双结构体运用(无自定义函数) 发布于:2025-11-21 15:01 图书查找器(综合) 发布于:2025-11-21 09:41 菱形塔通用 发布于:2025-11-20 22:25 结构体与指针 发布于:2025-11-20 17:15 综合题1(注释版) 发布于:2025-11-20 16:49 (综合题1) 录入 N 个学生信息(学号、姓名、3 门课程成绩); 计算每个学生的平均分和总分; 按平均分降序排序并输出; 查找指定学号的学生信息(找到则输出,未找到提示 “无此学生”)。 发布于:2025-11-20 16:42 结构体,指针,函数,数组结合,计算多个学生信息及成绩平均值和最大平均值(综合)(优化) 发布于:2025-11-20 14:38 结构体,指针,函数,数组结合,计算多个学生信息及成绩平均值和最大平均值(综合) 发布于:2025-11-20 11:51 结构体(指针与函数) 发布于:2025-11-20 10:36 结构体(数组运用) 发布于:2025-11-20 09:53 结构体(示范) 发布于:2025-11-20 09:16 编写函数,用指针实现“不用临时变量的两数交换”和“数组排序(冒泡排序)”指针与函数的关系 完整版 发布于:2025-11-19 17:02 编写函数,用指针实现“不用临时变量的两数交换” 发布于:2025-11-19 16:59 指针与数组的简单三种用法(累加,自增,偏移) 发布于:2025-11-19 16:32 指针基础(换数) 发布于:2025-11-19 16:04 指针基础用法 发布于:2025-11-19 15:02 素数(函数版) 发布于:2025-11-19 14:52 素数(普通版本) 发布于:2025-11-19 14:44 斐波那契数列问题(生兔子,黄金分割比例) 发布于:2025-11-19 14:10 交换数组中的元素(指针,函数) 发布于:2025-11-19 10:04 字符串长度(指针,函数) 发布于:2025-11-19 09:33 # 前n项和计算 发布于:2025-11-18 20:15 C语言学习代码测试 发布于:2025-11-18 15:49 整数各位之和 发布于:2025-11-19 09:21 冒泡法十个字符大小排序 发布于:2025-11-18 11:49 冒泡排序范本 发布于:2025-11-18 14:10 定义函数分析字符串(*****难) 发布于:2025-11-18 10:51 使用函数求数组中的最大值最小值和平均数(难) 发布于:2025-11-18 09:37 KMP算法获取NEXT 发布于:2025-11-16 17:07 二维数组的各行各列的和以及总数和(以解,难) 发布于:2025-11-14 13:51 二维数组,每行最大值以及和 发布于:2025-11-14 12:54 数组中最大最小值 发布于:2025-11-14 11:17 数组的输入输出 发布于:2025-11-14 10:57 杨辉三角形(二维数组) 发布于:2025-11-14 10:50 派的近似值(难题)未理解 发布于:2025-11-13 22:21 输出最大 数 发布于:2025-11-13 21:44 九九乘法表 发布于:2025-11-13 21:31 最大公约数和最小公倍数 发布于:2025-11-13 17:10 加减交替累加和 发布于:2025-11-13 16:21 链表(线性表)的操作 发布于:2025-11-21 00:19 顺序表尾部添加元素 发布于:2025-11-12 02:22 初始化线性表 发布于:2025-11-07 13:53 List初始化 发布于:2025-11-07 13:40 模糊pid控制 发布于:2025-11-07 09:28 三个数换顺序 发布于:2025-11-19 14:12 Malloy函数的使用 发布于:2025-11-05 15:39 输入MAC,输出长度为10的由字母和数字(A-Z, a-z, 2-9)组成的随机字符串 发布于:2025-10-30 10:46 计算圆柱体体积 发布于:2025-10-30 08:38 签名数据提取 发布于:2025-10-29 16:32 [更多]
显示目录

头文件



搭载国产梦丘操作系统,支持安装软件,在线编程可视化开发软件,无需配置开发环境

点击购买 梦丘固件

C 头文件

头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。

在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。

引用头文件的语法

使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种:

#include <file>

这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。

#include "file"

这种形式用于引用用户头文件。它在包含当前文件的目录中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。

引用头文件的操作

#include 指令会指示 C 预处理器浏览指定的文件作为输入。预处理器的输出包含了已经生成的输出,被引用文件生成的输出以及 #include 指令之后的文本输出。例如,如果您有一个头文件 header.h,如下:

char *test (void);

和一个使用了头文件的主程序 program.c,如下:

int x;
#include "header.h"

int main (void) {
   puts (test ());
}

编译器会看到如下的令牌流:

int x;
char *test (void);

int main (void) {
   puts (test ());
}

只引用一次头文件

如果一个头文件被引用两次,编译器会处理两次头文件的内容,这将产生错误。为了防止这种情况,标准的做法是把文件的整个内容放在条件编译语句中,如下:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

这种结构就是通常所说的包装器 #ifndef。当再次引用头文件时,条件为假,因为 HEADER_FILE 已定义。此时,预处理器会跳过文件的整个内容,编译器会忽略它。

有条件引用

有时需要从多个不同的头文件中选择一个引用到程序中。例如,需要指定在不同的操作系统上使用的配置参数。您可以通过一系列条件来实现这点,如下:

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

但是如果头文件比较多的时候,这么做是很不妥当的,预处理器使用宏来定义头文件的名称。这就是所谓的有条件引用。它不是用头文件的名称作为 #include 的直接参数,您只需要使用宏名称代替即可:

#define SYSTEM_H "system_1.h"
 ...
 #include SYSTEM_H

SYSTEM_H 会扩展,预处理器会查找 system_1.h,就像 #include 最初编写的那样。SYSTEM_H 可通过 -D 选项被您的 Makefile 定义。

由JSRUN为你提供的C语言在线运行、在线编译工具
        JSRUN提供的C语言 在线运行,C语言 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。