-
C 预处理器
不是编译器的组成部分
,但是它是编译过程中
一个单独的步骤
。 -
简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把
C 预处理器
(C Preprocessor)简写为CPP。
-
所有的预处理器
命令都是以井号(#)开头
。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。 -
宏定义
-
文件包含
-
条件编译
注
:常见的预处理指令:
typedef:为类型起别名
typedef unsigned char BYTE;
BYTE b1,b2;
typedef vs #define
-
#define 是 C 指令(不是C语句),用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
-
typedef
仅限于为类型定义符号名称
,#define
不仅可以为类型定义别名
,也能为数值定义别名
,
+ 比如您可以定义 1 为 ONE。 -
typedef
是由编译器执行解释
的 -
#define
语句是由预编译器
进行处理的。
1、宏定义
C语言
中提供的预处理功能 有:宏定义
、文件包含
和条件编译
形式:
形式 : #define 宏名 替换文本
#define PI 3.14
说明 :
在C语言程序中,`符号常量(PI)` 的定义要使用 宏定义 预处理命令。
宏名习惯用大写字母,但是也可以用小写。
宏名不是C语句,行末不必加 分号;
预处理命令不是C语句,行末不必加 分号;
例如:
#define k 2+3
//宏计算:先按宏展开,在计算
k/k
2+3/2+3
2+1+3 6 先乘除后加减
预定义
宏
2、文件包含
所谓文件包含,就是在一个
源文件(.c)
的全部包含进来,即将另外一个文件包含到本文件中。
2.1、C语言提供了两种形式
#include <文件名> <> 系统目录
#include <stdio.h>
#include "文件名" "" 包含系统目录 + 用户目录
#include "math.h"
条件编译