简单c语言文法

<源函数> → <外部声明> | <源程序> <外部声明>

<程序> —〉 <外部声明> | <函数定义>
<外部声明> —〉<头文件> | <变量> | <结构体> 
<头文件> —〉 #include<文件名>
<文件名> —〉 stdio.h丨stdlib.h丨string.h
<结构体> —〉 <结构体声明〉|<结构体成员列表>
<结构体声明> —〉 struct<结构名>
<结构体成员列表> —〉<变量>
<结构名> —〉<标识符>
<函数定义> —〉 <类型说明><函数名><参数列表><复合语句>
<函数名> —〉<标识符>
<参数列表〉 —〉<类型说明><变量名>
<复合语句> —〉<变量>|<语句>
<语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句>
<表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式>
<赋值表达式> —〉 = | += | =+ | -= | =-
<关系表达式> —> 〉| < | 〉=| <=
<逻辑表达式> —〉 + | - | * | / 
<选择语句> —〉 if else语句| switch语句
<循环语句> —〉 for语句|while语句|do while语句
<跳跃语句> —> return语句|break语句|continue语句
<变量> —> <类型>丨<变量名>丨<变量值>
<类型说明> —> int丨char丨double丨float丨long
<变量名> <==> S
S —> A|SB
A —> a|b|c|……y|z
B —> 0|1|2|3|4|5|6|7|8|9
<变量值> —> <字母>丨〈数字〉
<标识符> 〈==〉 S
S —> a|b|c|……y|z|S
<字母> —> a|b|c|……y|z
<数字> 〈==〉 S
A —> 1|2|3|4|5|6|7|8|9
S —> A|SA|SA0

时间: 2024-10-10 15:51:23

简单c语言文法的相关文章

简单C语言文法描述

标识符列表 → 标识符 | 标识符列表,标识符 标识符 → 下划线 标识符|字母 标识符|数字|字母|下划线 常数表达式 → 条件表达式 参数列表 → 参数声明 | 参数列表 ,参数声明 参数声明 → 说明符声明 标识符 语句列表 → 语句 | 语句列表 语句 语句 → 复合语句 | 表达式语句 | 选择语句 | 循环语句 复合语句 → { } | { 语句列表 } | { 声明列表 语句列表 } 声明列表 → 声明 | 声明列表 声明 声明 → 初始化声明 | 初始化声明列表 ,初始化声明 初

1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

1014 C语言文法定义与C程序的推导过程  程序:冒泡算法C程序(语法树)1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图(完整图片) 1 #include <stdio.h> 2 3 main() 4 { 5 int i,j,temp; 6 int a[10]; 7 8 for(i=0;i<10;i++) 9 scanf

linux内核学习之一 简单c语言反汇编

(我是第一次发技术博客的菜鸟,恳请大家指导!!) 一  由简单c程序生成汇编代码 首先给出本次我们要反汇编的简单c语言程序:(够简单吧~) 在linux环境中使用下面的命令条件编译: 生成汇编文件shiyan1.s: shiyan1.s的部分代码截图: 全部粘贴出来如下: 1 .file "shiyan1.c" 2 .text 3 .globl g 4 .type g, @function 5 g: 6 .LFB0: 7 .cfi_startproc 8 pushl %ebp 9 .c

用最简单的语言给你解释“什么是股权稀释”

编者按:本文来自简法帮投稿,简法帮,是一家为创业者和初创型企业提供交互性法律文件在线自制服务的互联网企业,致力于为创业者提供零成本.高质量的线上法律服务.创业公司融资过程中的股权稀释是一个非常重要的问题,这篇文章用直白的语言和形象的图标给你答案. 不少创业者在融资的过程中,对股权稀释的问题不太明白,我们希望用最简单的语言解释清楚股权稀释,并通过数字实例为大家图解. 一.融资不等于股权转让 首先,创业者需要明白的是,融资通常是企业融资,企业引入资金做大公司的盘子,投资人取得公司股权成为公司的新股东

snml.exe为简单网络管理语言的解释执行器。本地打包下载:https://files.cnblogs.com/files/snmlsnmpsshtelnetipv6/snml_utf8ipv6.zip

本地打包下载:https://files.cnblogs.com/files/snmlsnmpsshtelnetipv6/snml_utf8ipv6.zip snml.exe为简单网络管理语言的解释执行器. 原文地址:https://www.cnblogs.com/snmlsnmpsshtelnetipv6/p/12381672.html

简单版的c语言文法

<源程序> → <外部声明> | <源程序> <外部声明> <外部声明> → <函数定义> | <定义> <函数定义> → <类型标识符> <声明部分语句> <标识符类型> → <无类型> | <字符> | <整型> | <浮点型> <声明> <指针直接声明> | <直接声明> <指针&

Linux下简单C语言小程序的反汇编分析

韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOOC相关课程而写的作业,如有疏漏,还请指出. 选了一门Linux内核分析课程,因为阅读内核代码中或多或少要涉及到At&T汇编代码的阅读,所以这里写下一个对一个简单C命令行程序的反汇编分析过程,一方面完成作业,另一方面当作练手.下面开始: 1.编写我们的C语言小程序 这里我们使用简单的例子,代码如下: 1

Markdown:纯文本进行网页排版的简单标记语言

Markdown http://daringfireball.net/projects/markdown/ 2016-08-03 Markdown是一种标记语言,对纯文本使用简单的标记符号进行网页格式排版,然后使用编译器可将其转换为丰富格式的结构化HTML文档. Markdown以纯文本格式文件储存,默认后缀名为md,其格式易读.编辑简单.使用Markdown编写需要格式化的帮助或说明文档之类,甚至撰写文稿.出版物等变得比较简单. Github网站使用添加了部分功能的Markdown编辑器,多数

简单C语言程序

求一个数二进制代码中1的个数 #include <stdio.h> #include <stdlib.h> int count_one_bit(unsigned int num) {   int count=0; while (num) { if (num % 2 == 1) count++; num = num / 2; }    return count;     } int main() {   int ret=count_one_bit(255); printf("