简单的C语言文法
<程序>→<外部声明>|<程序><外部声明>
<外部声明>→<函数定义>|<声明>
<函数定义>→<类型说明><声明符><符合语句>
<类型说明>→<void>|<char>|<int>|<float>
<声明符>→<指针直接声明符>|<直接声明符>
<指针>→<'*'>|< '*' 指针>
<直接声明符>→<标识符>|<’[‘ ‘]’>|<[’ 常量表达式’]’>|<参数表>|<(' ')>|< 标识符列表>
<复合语句>→<'{' '}'>|<语句列表>|<声明列表>
<声明列表>→<声明>|<声明列表声明>
<标识符列表>→<标识符>|<标识符列><标识符>
<常量表达式>→<条件表达式>
<参数表>→<参数声明>|<参数列表><参数声明>
<声明>→<声明>|<声明列表声明>
<初始化>→<赋值表达式>|<“{ }”“初始化列表”>|<“{ }”“初始化列表”>
<初始化列表>→<初始化>|<初始化列表'><初始化>
<语句列表>→<语句>|<语句列表><语句>
<语句>→<复合语句>|<表达语句>|<选择语句>|<迭代语句>|<跳转语句>
<选择语句>→<if>|<IF (“表达式”)ELSE语句的声明>
<迭代语句>→< WHILE >|< FOR >|< FOR ><语句>
<跳转语句>→< CONTINUE >|< BREAK >< RETURN >< RETURN ><语句>
<一元运算符>→ '&'| '*'| '+'| '-'| '~'| '!'
<存储类说明符>→< TYPEDEF >|< EXTERN >|< STATIC >|< AUTO >|< REGISTER >
<结构或联合说明符>→<结构或联合说明符><结构体声明列表>|<结构或联合><结构体声明列表>|<结构或联合><标识符>
<结构或联合>→< STRUCT >|< UNION >
<结构体声明列表>→<结构体声明>|<结构体声明><结构体声明列表>
<结构体声明>→<说明符限定符列表><结构说明符>
<说明符限定符列表>→<类型说明符><说明符限定符列表>|<类型说明符>|<说明符限定符列表>|<类型限定符>
<结构说明符列表>→<结构说明符>|<结构说明符列表><结构说明符>
<结构说明符>→<说明符>|<常数表达式>|<常数表达式><说明符>
<枚举说明符>→<枚举器列表>|<枚举标识符><枚举器列表>|<枚举标识符>
<枚举标识符>→<枚举>|<枚举标识符><枚举>
<枚举>→<标识符>|<常数表达式><标识符>
简单的C语言文法的更多相关文章
- 简单的C语言编译器--概述
在学习了编译原理的相关知识后,逐渐的掌握一个编译器的结构.作用和实现方法.同时,希望自己在不断的努力下写出一个简单的C语言编译器. 实现步骤 词法分析器:将C语言测试代码分解成一个一个的词法单元: ...
- C语言文法
C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明 → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...
- 1029 C语言文法定义与C程序的推导过程
1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...
- LANG=C是最早最简单的C语言环境(标准ASCII码)
LANG=C是最早最简单的C语言环境(标准ASCII码)
- 一个简单的C语言程序(详解)
C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h> int main(void) //一个简单的 C程序 { int num; //定义一个名为 ...
- 利用OD破解一个简单的C语言程序
最近在学习汇编(看的是王爽老师的<汇编语言(第三版)>),然后想尝试使用OD(Ollydbg)软件破解一个简单的C语言程序练练手. 环境: C语言编译环境:VC++6.0 系统:在Wind ...
- 简单C语言文法
<程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...
- neo4j初次使用学习简单操作-cypher语言使用
Neo4j 使用cypher语言进行操作 Cypher语言是在学习Neo4j时用到数据库操作语言(DML),涵盖对图数据的增删改查 neo4j数据库简单除暴理解的概念: Neo4j中不存在表的概念, ...
随机推荐
- 初见SpringMVC
1.什么是SpringMvc Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 M ...
- sql语句返回值的问题
由于执行sql语句的时候执行成功或者失败会返回执行的影响函数,用list是因为查询的结果可能为null也可能set后放到集合里去: 所以返回值类型用int
- ActiveMQ笔记(7):如何清理无效的延时消息?
ActiveMQ的延时消息是一个让人又爱又恨的功能,具体使用可参考上篇ActiveMQ笔记(6):消息延时投递,在很多需要消息延时投递的业务场景十分有用,但是也有一个缺陷,在一些大访问量的场景,如果瞬 ...
- 基于C/S架构的3D对战网络游戏C++框架_01服务器端与客户端需求分析
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...
- Gulp:自动化构建工具
一.介绍: gulp是一个基于流的构建工具,可以自动执行指定的任务,简洁且高效 二.优点: 开发环境下,想要能够按模块组织代码,监听实时变化 css/js预编译,postcss等方案,浏览器前缀自动补 ...
- AC自动机 HDU 3065
大概就是裸的AC自动机了 #include<stdio.h> #include<algorithm> #include<string.h> #include< ...
- 教你开发jQuery插件(转)
教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文: ...
- C#设备处理类操作
C#对于处理window操作系统下的设备有天然的优势,对于大多数设备读写等操作来说基本上够了,这里只讨论通过普通的大多数的设备的操作.涉及到两大类SerialPort类,Socket的一些操作.不一定 ...
- Assetbundles
Unity5.4 Assetbundles官方说明 http://iq007.blog.163.com/blog/static/265542019201681264813653?suggestedre ...
- EFCore教程
https://docs.microsoft.com/en-us/ef/core/modeling/alternate-keys aspnet core 教程 https://docs.microso ...