?lex和yacc可以帮助你编写程序转换结构化输入。既包括从输入文件中寻找模式的简单文本搜索程序,也包括将源程序变换为最佳的目标代码的C编译程序等。
?lex使用一系列对可能标记的描述,产生一个能识别那些标记的C例程(我们成为词法分析器。词法分析程序(lexer),或成为扫描程序)。
?lex使用的标记描述称为正则表达式。yacc采用简明的语法描述并产生在一个能分析语法的C例程。即分析程序。yacc...
分类:
其他好文 时间:
2015-05-05 10:36:58
阅读次数:
133
使用gcc编译程序时,编译过程可以细分为四个阶段:
预处理
预处理过程读入程序源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。预处理过程会删除程序中的注释和多余的空白字符。
编译
编译阶段中,gcc首先检查代码的规范性,是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。
汇编
汇编阶段是把在编译阶段产生的汇编文件转成目标代码。
链...
分类:
系统相关 时间:
2015-05-05 09:00:32
阅读次数:
209
C++内存管理: 变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配,所有的动态分配基本都是在堆区进行的。不过是不能说的这么绝对的,与编译器和库都是有关联的。函数的参数未必通过堆栈进行...
分类:
编程语言 时间:
2015-05-04 10:02:30
阅读次数:
188
使用命令行来编译C++程序,我们可以有两种方法: 方法一: 1. 依次打开开始程序—>Visual Studio 2010 –>Visual Studio tools –>Visual Studio命令提示,打开后,它会自动设置相关环境变量,我们就可以使用cl.exe来编译单个C/C++程序。 如下...
分类:
编程语言 时间:
2015-04-29 19:25:57
阅读次数:
138
软件:计算机运行所需要的各种程序和数据的总成,包括操作系统,汇编语言,编译,程序,数据库,文字编辑和维护使用手册等。软件的特性:(1)软件产品的主要生产是脑力劳动,还没有摆脱手工开发方式(2)软件是一种逻辑产品,他与物质产品不同,他是脑力劳动的结果(3)软件产品不会用坏(4)软件产品的生产主要是研制...
分类:
其他好文 时间:
2015-04-27 23:35:20
阅读次数:
134
gcc 编译器是众多编译器组合入口,例如在编译 .cpp 文件时,使用c++ 编译器,编译.c 文件时,使用c编译器。 在编译c++程序时, 库文件与头文件可通过 -L[dir] 指定库目录 , -l[name] 指定库文件名称。指定库文件名称时,需按照指定范式。例如库文件 libabc.a , [...
分类:
系统相关 时间:
2015-04-27 18:16:49
阅读次数:
179
编译程序:计算机只能识别二进制语言,计算机高级语言要运行必须需要编译程序编译成计算机能够读懂的二进制语言。gcc是一种二进制编译程序。GNUccompiler(gcc)GNU含义:GNU的目的建立一个开放的,自有的操作系统。是由RichardMathewStallman(史托曼)发起的计划。他还成立(FreeS..
分类:
其他好文 时间:
2015-04-22 18:48:27
阅读次数:
114
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://co63oc.blog.51cto.com/904636/504469windows下用vs2008和boost结合编译程序vc6.0和boost结合出现很多错误使用asio子库中一个h...
union共用体说明:当一个共用体被声明时,编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。比如union中有{int x; double x1; char name[10];}这个共用体的长度为10字节,因为name[10]是这个共用体中最大的一个变量#include stru...
分类:
编程语言 时间:
2015-04-19 17:38:05
阅读次数:
134