C 教程

C 教程 C 语言简介 C 下载安装和环境配置 C 快速入门 C 语法 C 输出 C 注释 C 变量 C 数据类型 C 常量 C 运算符 C 布尔值 C If...Else 语句 C Switch 语句 C While 循环 C For 循环 C Break/Continue 语句 C 数组 C 字符串 C 用户输入 C 内存地址 C 指针

C 函数

C 函数 C 函数参数 C 作用域 C 函数声明 C 递归 C 数学函数

C 文件

C 创建文件 C 写入文件 C 读取文件

C 结构体

C 结构体 C 嵌套结构体 C 结构体和指针 C 联合体 C typedef

C 枚举

C 枚举

C 内存

C 内存管理

C 错误

C 错误 C 调试 C 空值 C 错误处理 C 输入验证

C 更多

C 日期 C 随机数 C 宏 C 代码组织 C 存储类 C 位运算符 C 固定宽度整数

C 项目

C 项目

C 参考资料

C 参考资料 C 关键词 C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C 标准库参考

C 标准库 - 参考手册 C 标准库 - <assert.h> C 标准库 - <ctype.h> C 标准库 - <errno.h> C 标准库 - <float.h> C 标准库 - <limits.h> C 标准库 - <locale.h> C 标准库 - <math.h> C 标准库 - <setjmp.h> C 标准库 - <signal.h> C 标准库 - <stdarg.h> C 标准库 - <stddef.h> C 标准库 - <stdio.h> C 标准库 - <stdlib.h> C 标准库 - <string.h> C 标准库 - <time.h>

C 实例

C 语言实例 C 经典100例 C 编译器 C 测验


C 预处理器和宏

预处理器和宏

在 C 语言中,预处理器 在实际编译开始之前运行。它负责处理诸如包含文件和定义宏 之类的操作。

预处理器命令以#符号开头,被称为指令。


#include - 包含头文件

你已经多次见过#include指令——它告诉编译器包含一个文件。

它用于添加库或自定义头文件:

示例

#include <stdio.h>
#include "myfile.h"

对于标准库,请使用尖括号 < >;对于您自己的文件,请使用双引号 " "。

提示:最常用的库可以在C 参考文档中找到。


#define - 创建宏

宏是一个名称,它代表一个值(例如 PI)或一段代码,使用 #define 指令定义。

在下面的示例中,PI 在程序编译之前会被替换为 3.14。

这意味着,代码中每次出现 PI 时,都会被替换为 3.14。

示例

#define PI 3.14

int main() {
  printf("Value of PI: %.2f ", PI);
  return 0;
}
亲自试一试 »

宏也可以像函数一样接受参数:

示例

#define SQUARE(x) ((x) * (x))

int main() {
  printf("Square of 4: %d ", SQUARE(4));
  return 0;
}
亲自试一试 »

带参数的宏就像快捷键一样,但要注意括号的使用,以免出错。


#ifdef 和 #ifndef - 条件编译

#ifdef 和 #ifndef 指令允许您根据是否定义了宏来包含或跳过部分代码。

这叫做条件编译,它对于调试程序或创建程序的不同版本非常有用。

示例

#define DEBUG

int main() {
  #ifdef DEBUG
    printf("Debug mode is ON ");
  #endif
  return 0;
}
亲自试一试 »

如果定义了 DEBUG,则会打印该消息。如果未定义,则会跳过该部分代码。


创建您自己的头文件

在下一章中,您将学习如何创建自己的头文件,并使用"模块化编程"将代码组织到多个文件中。