编译原理
风中舵手
个性、快乐、勇气
展开
-
c语言开辟内存的问题
假如我用在VC编译器中使用语句int i=0;这时我还没有点击编译和运行按钮,系统已经为i开辟了内存吗?还有就是要不要给i赋值才会开辟内存?直接写int i;也会开辟内存吗?①C语言编码的时候不会开辟内存,只有在编译之后才会生成可执行程序,在可执行程序里面给出内存的开辟方法。②真正内存的开辟是在程序运行的时候。程序装载到内存里面,开始运转载 2016-05-26 10:54:55 · 678 阅读 · 0 评论 -
我的 VC++ 常见错误问题解决办法
1.没有解决的外部定义错误xyView.obj : error LNK2001: unresolved external symbol "public: __thiscall CMyOCRInfo::CMyOCRInfo(void)" (??0CMyOCRInfo@@QAE@XZ)可能是由于构造方法没有实现代码2.没有释放 HBITMAP 句柄造成不能创建位图的问题2004.8.1转载 2016-06-02 16:31:27 · 3069 阅读 · 0 评论 -
编译器编译原理详解
第一篇摘自:http://www.21ic.com/app/embed/201103/79359.htm1. 词法分析词法分析器根据词法规则识别出源程序中的各个记号(token),每个记号代表一类单词(lexeme)。源程序中常见的记号可以归为几大类:关键字、标识符、字面量和特殊符号。词法分析器的输入是源程序,输出是识别的记号流。词法分析器的任务是把源文件的字符流转换成记号流。本质转载 2016-05-20 20:54:23 · 594 阅读 · 0 评论 -
C语言编译原理简介
1. 编辑器: 我们编写代码的一些窗口,如:记事本、word、notepad等。2. 编译器: 检查用户代码的一些语法错误并且将其编译成汇编代码。3.汇编器:将编译出来的文件变成目标代码(windows 下的.obj文件)4.连接器:将目标代码连接成为可执行文件(.exe),及双击就可以运行文件。5.集成开发环境(Integrated Development Env转载 2016-05-20 20:52:33 · 403 阅读 · 0 评论 -
C++ I/O库流状态标志位
再来看看输入状态标记位、状态测试函数、状态设置函数之间的关系: 输入状态标记位常量有以下几个: 标记位常量常量含义failbit标记位的值eofbit标记位的值badbit标记位的值转化为10进制iOS::failbit输入(输出)流出现非致命错误,可挽回转载 2016-05-31 19:14:33 · 592 阅读 · 1 评论 -
函数调用--函数栈
函数调用--函数栈函数调用大家都不陌生,调用者向被调用者传递一些参数,然后执行被调用者的代码,最后被调用者向调用者返回结果,还有大家比较熟悉的一句话,就是函数调用是在栈上发生的,那么在计算机内部到底是如何实现的呢? 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写数据段转载 2016-05-30 14:56:05 · 214 阅读 · 0 评论 -
C++ this指针的理解
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针转载 2016-05-27 16:30:08 · 180 阅读 · 0 评论 -
C++之常量(一)
1概述一个C++程序就是一系列数据与操作的集合。当一个C++程序开始运行的时候,与该程序相关的数据就会被加载到内存中。当数据与内存发生关联的时候,这些数据就会具有如下的特性:数据在内存中的地址。这个地址决定了数据在内存中的存储位置。在32位的系统中,每一个C++程序都具有4GB大小的内存地址空间,这个4GB大小的内存空间又被划分为若干个区域,如:栈区,堆区,全局(静态)区,文字常量转载 2016-05-27 15:56:53 · 517 阅读 · 0 评论 -
扫盲回帖系列之1——栈的疑问
看到一个提问帖子(http://bbs.csdn.net/topics/390930552),问题摘录如下:--------------------------------------------------------------------------------例如函数调用的时候会在栈中为函数开辟一段空间,函数的参数也会挨个入栈,函数调用结束,会平衡栈,释放空间。函数的局转载 2016-05-26 11:50:56 · 266 阅读 · 0 评论 -
关于书上说的“编译的时候分配内存”
一下均为网络上收集的资料: 1、所谓在编译期间分配空间指的是静态分配空间(相对于用new动态申请空间),如全局变量或静态变量(包括一些复杂类型的常量),它们所需要的空间大小可以 明确计算出来,并且不会再改变,因此它们可以直接存放在可执行文件的特定的节里(而且包含初始化的值),程序运行时也是直接将这个节加载到特定的段中,不 必在程序运行期间用额外的代码来产生这些变量。 其实在运行期间再看转载 2016-05-26 10:55:49 · 283 阅读 · 0 评论 -
内存和内存地址通俗理解
内存 : 程序和数据平常存储在硬盘(硬盘是一种可记忆盘)等存储器上,不管你开机或关机了,它们都是存在的,不会丢失。硬盘可以存储的东西很多,但其传输数据的速度较慢。所以需要运行程序或打开数据时,这些数据必须从硬盘等存储器上先传到另一种容量小但速度快得多的存储器(无记忆盘),之后才送入CPU进行执行处理。这中间的存储器就是内存。 每个数据,都需要在内存上转载 2016-06-13 16:54:41 · 2763 阅读 · 0 评论