附 录 语 法 总 结

本 附 录 描 述 了 预 处 理 器 的 规 范 语 法 。 它 包 括 了 在 第 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 “ 语 法 总 结 ” 中 解 释 : 常 量 、 常 量 表 达 式 、 标 识 符 、 关 键 字 、 运 算 符 和 标 点 。