自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

LCC编译器的源程序分析(69)全局变量的初始化

前面已经介绍了全局函数和全局变量的声明处理,但全局变量的初始化,还没有详细地分析,现在就来干这件事情。比如编写C的程序,有如下的代码:#001#002int g_nTest = 100;#003#004int main(void)#005{#006int nTest1 = 1;#007int nTest2 = 2;像第2行代码就是全局变量的声明和初始化在一起的...

2007-08-31 22:07:00 68

Windows API一日一练(24)DrawText函数

DrawText函数与前面介绍的TextOut函数都是文本输出函数,但它们是有区别的。DrawText函数是格式化输出函数,而TextOut函数不具备这样的功能。因而DrawText函数比TextOut函数功能强大,可以让文本输出时左对齐,或者右对齐,或者中间对齐,还可以让文本适应输出矩形内,如果超出时可以截断,或者显示为省略号的方式。DrawText函数在表格方式显示时肯定要使用到的函数。...

2007-08-27 22:55:00 192

Windows API一日一练(23)SetTextColor函数

世界是多姿多彩的,色彩是不可以缺少的。在软件开发里,不同的字符颜色往往用来区分不同的数据类型,比如严重的警告,就是使用红色,当然这也是跟交通里红绿灯是一样的道理。最根本的原因,还是人类对自然的选择。毕竟人眼对不同的颜色作出了不同的选择。由于红色光波穿透性比较好,所以就形成以红色来警告的信号。说来也怪,人类的身体不管是什么颜色,流着的血一定是红色的。在软件开发里,要把输出字符的颜色符合现在人位的习...

2007-08-26 21:37:00 90

LCC编译器的源程序分析(68)内存分配链表

LCC采用大块内存的方法,那它分配内存也是比较特殊的,它的源程序如下:#001//大块内存结构。#002struct block#003{#004 struct block *next; //后继块指针。#005 char *limit; //尾位置#006 char *avail; //可用的开始位置.#007};#008#009//共用最大的类型.#01...

2007-08-26 11:35:00 121

dijit.form.ValidationTextbox

功能强大的文本框:dijit.form.ValidationTextbox这个文本输入框的功能比较强大,关键是它能够提供一些常用的验证和大小写转换。下面介绍一个例子和一些常用的属性:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt...

2007-08-24 16:23:00 104

dojo.data

dojo0.9的store核心内容。最近研究了一些,也翻译了一些,贴出来和大家分享。dojo的更多内容可以上: www.dojocn.cn 上查看。 一下内容是原创,转载请注明:dojo.data 是什么?dojo.data DojoX dojo.datadojo.data===================================...

2007-08-24 15:21:00 65

dojo0.9的第一个实例

dojo0.9已经发布有一段时间了,研究dojo 0.9 也有一周的时间了吧。总想写一些什么,但是思路比较乱,不知从何说起。dojo也许是将来的一个趋势,但是也许appolo可能会比他更有竞争力。到底dojo是夕阳技术,还是朝阳技术,等待历史的验证吧。不过现在我们小组决定下一期的项目主要采用dojo来做界面,所以,还是先研究透了再说吧,况且,对我来说,dojo源代码比较亲切,研究起来也不怎么费...

2007-08-24 15:02:00 76

LCC编译器的源程序分析(67)删除内存链表

LCC的内存分配是使用先分配大块内存,然后再从大块内存里分配出来小块内存,这样减少调用malloc的次数,当然也就减少调用函数free释放内存的次数,以便提高LCC的内存管理的性能。有网友对这个看不懂,我现在就把释放内存函数分析如下:#001//#002//删除内存链表.#003//#004//蔡军生2007/08/23 QQ:9073204深圳#005//...

2007-08-23 21:50:00 65

sql企业管理器打不开 怎么办

关于MMC不能打开文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限 打开运行对话框输入:mmc 控制台--添加/删除管理单元--添加--找到MicrosoftSQL企业...

2007-08-22 15:38:00 122

字符串截取的几个function

function cutstr(thestr,strlen) dim l,t,c l=len(thestr) t=0 for dxy=1 to l c=Abs(asc(Mid(thestr,dxy,1))) if c>255 then t=t+2 else t=t+1 end if if t>=strlen then thev=left(thestr,dxy) exit for e...

2007-08-22 15:37:00 121

存储过程类型参照表

adDBTimeStamp 135 日期时间数据类型   adDecimal 14 十进制整数值   adDouble 5 双精度小数值   adError 10 系统错误信息 AdGUID 72 全域性唯一识别字(Globally unique identifier) adDispath 9 COM/OLE自动对象(Automation Object) adInteg...

2007-08-22 15:35:00 110

Windows API一日一练(22)TextOut函数

文本输出,从来就是比较常用的方式,自从发明文字以来,就应缺少不了文字的显示了。在以前,是书写到白纸上,让别人看懂它。现在到了信息的时代,当然是显示在屏幕上,即使你是不懂书法的,也可以显示出惊人的书法文字出来。在窗口里显示文字出来,就可以使用TextOut函数,当然不只这一个API函数可以显示字符了。TextOut函数是使用当前设备的属性来显示文字的,比如设备属性有字体类型,字体的颜色,字体背景的...

2007-08-16 16:35:00 135

LCC编译器的源程序分析(66)DAG树分析例子

前面已经介绍创建分析树,下面就来详细地说明一个例子,看看到底生成什么样的分析树,C源程序如下:#005int nTest1 = 1;#006int nTest2 = 2;#007int nTest3;#008int i;#009#010nTest3 = nTest1 + nTest2;把上面的源程序分析后,就生成下面的DAG树,如下:#2 ADDRLP4...

2007-08-13 22:47:00 77

LCC编译器的源程序分析(65)后端接口的结构注释

因为LCC后端可以生成不同机器结构的代码,所以需要定义后端的接口结构,当不同的模块实现这些接口时,就可以实现不同的机器代码生成。下面就是这个接口的结构定义注释。#001//后端代码生成的接口.#002 typedef struct interface #003{#004//数据类型.#005Metrics charmetric;#006Metrics sho...

2007-08-11 19:20:00 76

LCC编译器的源程序分析(64)符号表的结构注释

符号表是用来保存每个符号信息的,因为编译器分析源程序的过程会生成很多符号的属性,后端根据这些属性来生成合适的指令和代码的格式。#001//符号表结构.#002//#003//蔡军生2007/08/10 QQ:9073204#004//#005struct symbol #006{#007char *name; //符号的名称,大多数情况是源程序的符号....

2007-08-10 21:32:00 64

LCC编译器的源程序分析(63)创建DAG森林的源程序

#001//#002void walk(Tree tp, int tlab, int flab) #003{#004//创建DAG森林.#005listnodes(tp, tlab, flab);#006#007//如果DAG森林生成.#008if (forest) #009{#010 Node list = forest->link;#011...

2007-08-09 21:55:00 66

LCC编译器的源程序分析(62)生成常量树节点的流程

在LCC里分析下面的语句:#005int nTest1 = 1;就需要把1生成一个常量树节点,那么在LCC里用怎么样的流程来创建这个树节点的呢?这个过程大体是这样的:当碰到赋值符号后,就需要分析表达式,于是调用函数获取记号函数CCaiCompiler::Instance()->GetLex()->GetToken(),接着下来就调用构造常量符号项的函数Symbol...

2007-08-07 21:45:00 54

Windows API一日一练(21)SetWindowLongPtr和GetWindowLongPtr函数

在软件开发里,大家一直对着这个问题是执着的,那是“复用”。总想自己写出来的代码,可以适应性很强,到那里都可以落地生根。因此,面向对象的语言就层出不穷,每个都坚称可以最大地复用代码。在面向对象里,C++是非常强大的。下面就来用C++把上面介绍的程序封装起来,这样可以复用,或者说条理更加清晰。#001#002int APIENTRY _tWinMain(HINSTANCE hInstanc...

2007-08-04 08:55:00 158

LCC编译器的源程序分析(61)复合语句的代码块流程

LCC编译器要分析下面的程序,大体流程是这样的。#001#include <stdio.h>#002#003int main(void)#004{#005int nTest1 = 1;#006int nTest2 = 2;#007int nTest3;#008int i;#009#010nTest3 = nTest1 + nTest2;#...

2007-08-03 20:39:00 69

Windows API一日一练(20)LoadString、LoadIcon和LoadCursor函数

在编写国际化的应用程序里,经常要使用不同语言的字符串。比如中文菜单里叫做“文件”,而在英语里叫做“File”。开发这种软件的功能是一样的,只是界面上显示的文字不一样而已。为了方便这种软件的开发,在Windows里经常使用的方法就是替换掉显示的字符串,比如指定在中文里就显示“文件”,在英语里就显示“File”,是通过函数LoadString从不同的资源里加载不同的字符串显示来实现的。其实所有可变的字...

2007-08-02 13:08:00 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除