C语言文法高级定义与声明

需积分: 0 0 下载量 71 浏览量 更新于2024-08-05 收藏 247KB PDF 举报
C语言是一种广泛使用的高级编程语言,其语法结构严谨且功能强大。附录A详细阐述了C语言的文法定义,以便理解和编写程序。本文档中的关键知识点主要集中在7.1节的文法定义和高阶定义部分。 7.1.1 Tokens(标记) 这部分定义了C语言中的基本符号,包括: - INT:表示整数,由一个无空格的数字序列组成,假设每个整数不超过32位。 - FLOAT:表示浮点数,由数字和可选的小数点组成,小数点两侧至少各有一个数字,遵循C语言对浮点数格式的规范。 - ID:标识符,由大小写字母、数字和下划线组成,且必须以字母开头,长度不超过32个字符。 7.1.2 High-level Definitions (高阶定义) C程序的结构被定义为: - Program:由一个外部定义列表(ExtDefList)组成。 - ExtDefList:可以包含多个外部定义,通过ExtDef进行组合,也可以为空。 - ExtDef:包含类型说明符(Specifier)、外部声明(ExtDecList)和分号;或类型说明符和函数声明与实现(SpecifierFunDecCompSt)。 - ExtDecList:可以是变量声明(VarDec),或者多个变量声明之间用逗号连接。 - Specifier:包括基本类型如int和float,以及结构体类型声明(StructSpecifier)。 7.1.3 Specifiers(类型说明符) 这里定义了C语言中的类型说明符,例如指定变量的类型,以及结构体类型声明,后者包括结构体关键字(STRUCT),可选的标签(Tag),左花括号(LCDefList)以及右花括号(RC)。 7.1.4 Declarators(声明) 声明用于明确指出变量或函数在哪里定义,它们的类型以及可能的初始化值。这部分在实际编程中十分重要,它决定了变量的存储空间和访问权限。 7.1.6 Local Definitions(局部定义) 这部分关注的是函数内部的局部变量声明,它们仅在函数的作用域内有效,有助于代码的模块化和管理。 7.1.7 Exp(表达式) 虽然这部分没有直接给出,但可以推测这部分会定义C语言中的运算符和表达式的结构,如算术运算符(PLUS, MINUS, STAR, DIV),关系运算符(RELOP),逻辑运算符(AND, OR),以及条件运算符(IF, ELSE, WHILE)等。 总结来说,这些文法规则为理解和实现C语言程序提供了基础,对于学习者来说,理解并遵循这些定义是编程的基础,无论是编写简单的变量声明,还是复杂的函数结构,都离不开对这些文法细节的掌握。