附 录 语 法 总 结
本 附 录 描 述 了 预 处 理 器 的 规 范 语 法 。 它 包 括 了 在 第 1 章 “ 预 处 理 器 ” 和 第 2 章“ 编 译 指 示 指 令 ” 中 讨 论 的 预 处 理 指 令 和 操 作 符 。
本 附 录 包 括 以 下 主 题 :
-
定 义
-
约 定
-
预 处 理 器 语 法
定 义
终 结 符 是 语 法 定 义 中 的 终 点 。 其 它 任 何 解 决 方 案 都 是 不 可 能 的 。 终 结 符 包 括 保留 字 集 和 用 户 定 义 标 识 符 。
非 终 结 符 在 语 法 中 是 位 置 占 用 者 。 在 本 语 法 总 结 中 大 多 数 在 其 它 地 方 定 义 。 定义 可 以 是 递 归 的 。 下 面 的 非 终 结 符 定 义 “ Microsoft Visual C++ 6.0 参 考 库 ” 的 “ Microsoft Visual C++ 6.0 语 言 参 考 手 册 ” 卷 的 附 录 A “ 语 法 总 结 ” 中 : 常 量 、 常 量 表 达 式 、 标 识 符 、 关 键 字 、 运 算 符 、 标 点
一 个 任 选 的 组 件 可 用 下 标 opt 给 定 。 例 如 , ±下 面 给 出 了 一 个 括 在 大 括 号 中 的 可选 表 达 式 :
{ expression opt}
约 定
这 些 约 定 对 语 法 的 不 同 组 件 使 用 不 同 的 字 体 。 这 些 符 号 和 字 体 如 下 :
属性 说明
非终结符 斜体类型指出非终结符
#include 英 文 字 母 中 的 终 结 符 是 必 须 输 入 的 文 字 保 留 词 和 符 号 。 这 个上下文中的字母大小写是敏感的
opt 非终结符后跟 opt 表示是任选的
缺省字体 这个字体中描述或列出的字符可以用作语句中的终结符
一 个 非 终 结 符 后 跟 一 个 冒 号 (:) 引 入 其 定 义 。 分 行 列 出 另 一 种 定 义 。
预 处 理 器 语 法
#define 标 识 符 语 言 符 号 字 符 串 opt
#define 标 识 符 [( 标 识 符 opt,..., 标 识 符 opt )]± 语 言 符 号 字 符 串 opt
defined( 标 识 符 ) defined 标 识 符#include " 路 径 规 格 "
#include < 路 径 规 格 >
#line 数 字 序 列 " 文 件 名 " opt
#undef 标 识 符
#error 语 言 符 号 字 符 串#pragma 语 言 符 号 字 符 串条 件 的 :
if 部 分 elif 部 分 opt else 部 分 opt endif 行if 部 分 :
if 行 文本if 行 :
#if 常 量 表 达 式
#ifdef 标 识 符
#ifndef 标 识 符elif 部 分 :
elif 行 文 本
elif 部分 elif 行 文 本elif 行 :
#elif 常 量 表 达 式else 部 分 :
else 行 文 本else 行 :
# else
endif 行 :
# endif 数 字 序 列 :
数字
数 字 序 列 数字数 字 : 以 下 之 一
0 1 2 3 4 5 6 7 8 9 语 言 符 号 字 符 串 :
语 言 符 号 组 成 的 字 符 串语 言 符 号 :
关 键 字
标 识 符
常量
运 算 符
标点文 件 名 :
合 法 的 操 作 系 统 文 件 名路 径 规 格 :
合 法 的 文 件 路 径文 本 :
文 本 的 任 何 序 列
注 意 : 以 下 的 非 终 结 符 在 “ Microsoft Visual C++ 6.0 语 言 参 考 手 册 ” 中 的 附
录 A “ 语 法 总 结 ” 中 解 释 : 常 量 、 常 量 表 达 式 、 标 识 符 、 关 键 字 、 运 算 符 和 标 点 。