易网时代-编程资源站
Welcome
首页
/
软件开发
/
C++
浅析C++中的序列点
2017-02-06
17
浅析C++中的序列点2010-06-12德明泰int i = 3;i = i++;cout << i;结果是什么?有人可能会说是3,也有人可能会说是4,更多的人在骂出题的人白痴,但这语句究竟有何问题呢?未必每个人都清楚。有些人也许马上会说,这是“未定义行为”。没错,这是一个典型的未定义行为。i = i++这个表达式合乎C++语法,能够顺利编译通过,但是执行的结果,标准说“未定义”。为什么是&ldq...
C/C++小写数字转换成大写数字
2017-02-06
17
C/C++小写数字转换成大写数字2010-06-12 csdn Mobidogs#include<stdio.h>void main(){double x,y;char *ch[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","...
手把手教你写脚本引擎(一)——挑选语言的特性
2017-02-06
19
手把手教你写脚本引擎(一)——挑选语言的特性2010-06-24 C++博客 陈梓瀚脚本引擎的作用在于增强程序的可配置性。从游戏到管理系统都需要脚本,甚至连工业级产品的Office、3DS Max以及AutoCAD等都添加了属于自己的脚本语言。DHTML的出现让我们可以在网页代码中嵌入脚本语言,PHP和ASP等技术的出现让我们可以将一个应用程序的界面换成网页,而逻辑使用脚本语言编写。现在脚本语言的种类繁多,Python的发展让BOOST库拥有了对Pytho...
手把手教你写脚本引擎(二)——命令脚本
2017-02-06
18
手把手教你写脚本引擎(二)——命令脚本2010-06-24 C++博客 陈梓瀚这次要实现的是一个形式最简单的脚本。这种脚本仅有命令、标号及跳转构成,看起来就跟汇编一样,不过好是比较好读的。虽然这种脚本语言的语法非常简单,但是最基本的要素还是要有的。作为一个脚本引擎,为了可以在各种各样的合适的宿主程序中使用,脚本本身最好不要涉及到具体的领域。当然,如果这个脚本被创建的目的仅仅是为了某个领域的话,那就无所谓了。因此,一个脚本引擎需要一个检查和运行代码的机制、运...
手把手教你写脚本引擎(三)——简单的高级语言(1,基本原理)
2017-02-06
18
手把手教你写脚本引擎(三)——简单的高级语言(1,基本原理)2010-06-24 C++博客 陈梓瀚这一篇文章开始讲述如何实现一个高级语言的脚本引擎了。由于工程量较为庞大,因此将分开几篇文章讲。学习做脚本还是要从简单的东西做起的。上一篇文章介绍的命令脚本为实现高级语言的原理做了铺垫。首先,高级语言和低级语言脚本的架构是一致的。其次,为了具有较大的优化的空间,我们将把高级语言转换成低级语言,并配合一个低级语言的脚本引擎来实现高级语言的脚本引擎。当然,习惯上,...
手把手教你写脚本引擎(四)——简单的高级语言(2,处理语法)
2017-02-06
19
手把手教你写脚本引擎(四)——简单的高级语言(2,处理语法)2010-06-24 C++博客 陈梓瀚首先是词法分析器。我们仍然能够使用《构造可配置语法分析器》前半部分的方法人脑画出一张合适的DFA,这个时候我们可以手工来实现。用于词法分析器的DFA只有两种状态,一种是普通状态,另一种是终结状态。所以我们可以很机械地将DFA用C++写出来。我们要为状态编号。编号要连续,而且要从0开始,这样的话C++的编译器一般都会为switch-case的代码生成一张表,用...
手把手教你写脚本引擎(五)——简单的高级语言(3,符号表)
2017-02-06
20
手把手教你写脚本引擎(五)——简单的高级语言(3,符号表)2010-06-24 C++博客 陈梓瀚符号表的结构的复杂度跟语言的语义规则的复杂度有关。对于C#来说,每一个符号都附带了一大堆信息,譬如位置啦,所在的namespace啦,类型啦什么的。对于JavaScript来说,符号表几乎是不需要的,因为东西都动态了,编译时几乎不检查内容。语义分析的输出是符号表,代码生成的输入是符号表和语法树。因此语法树除了放语法相关的内容,语义相关的内容最好放到符号表里面(...
启程动态数组V2.0
2017-02-06
18
启程动态数组V2.02010-06-24黄建雄简介大量数据的管理是很多程序员的心病,很难找到一个速度快、效率高、支持超大规模数据的表,在1.0版本的基础上,启程花血本写下了这个强化了数据插入与删除的修正版,启程动态数组是一个功能强大的列表形数据管理链表,利用它可以轻松实现超大数据量的随机插入、删除、修改等操作,它另外一个特点就是速度极快,内存利用率高。大量数据的管理必然需要占用大量的内存空间,如果这些数据占用的空间大小是随各种条件变化的,我们就不能使用数组...
利用PDFLib生成PDF文档
2017-02-06
19
利用PDFLib生成PDF文档2010-06-24 vc知识库 本文代码生成的PDF文档效果图一、PDF介绍PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换。PDF文件可以在各种平台下阅读、编辑、发布。该文件格式支持字体、图像、甚至任何附件的嵌入。您可以通过免费的Adobe Acrobat Reader来阅读、编辑PDF文档。二、PDFLib介绍PDFLib是用于...
关于数据校验
2017-02-06
18
关于数据校验2010-06-24king_koo1.什么是数据校验通俗的说,就是为保证数据的完整性,用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,就说明数据是完整的。2.最简单的检验实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。适用范围:简单的数据量极小的通讯。应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠...
二进制浏览、编辑的实现
2017-02-06
17
二进制浏览、编辑的实现2010-06-24前几天看到有人在论坛上寻找二进制浏览、编辑代码,自己前几天又不是很忙,就摸索着写了这个程序。以前很少做这种界面的东西,遇到不少难题,非常感谢在论坛上得到的帮助。刚来了新项目,所以没有时间把她做完整,如果大家觉得有用可以在这个基础上修改或自己写一个,方便大家的使用。我这里只是抛砖引玉罢了,呵呵:)现在实现的功能有:1、二进制显示、编辑2、鼠标处理3、滚动条处理4、上下左右键的处理5、当前被编辑字符的高亮显示等具体实现...
介绍一个模板动态数组
2017-02-06
18
介绍一个模板动态数组2010-06-24黄建雄本代码提供对动态数组的支持,在内存中程序将数据分块存放,避免了大块内存的申请。同时,与普通的双向链表不同,本代码提供了对内部数据的快速索引,大大提高了数据访问速度。本代码提供C、C++两个版本,可以任意使用、修改、传播。下面是动态数组结构示意图:图一...
简单二叉树类
2017-02-06
18
简单二叉树类2010-06-24丁顺光本文由DigitalConvict供稿。原文出处:http://www.codeguru.com/algorithms/SimpleBinaryTree.html环境: (无特别限制) 在VC6 上开发我不会详细介绍二叉树理论的详细细节,因为这些东西,Per Nilsson 已经在他的“二叉树”中讨论过了,你可以在如下地址here找到详细的细节。对半查找树对于找到在一个列表中很少变化的项来说是很...
C++对象计数
2017-02-06
18
C++对象计数2010-06-24yy2better本文目的是实现一个实用的对C++类计数的类,同时在实现过程中指出一些容易为人忽视的C++知识。要实现一个类的对象(实例)计数,即程序运行中此类有多少个对象存在,最容易的实现方法是使用静态数据成员。如下:class Widget {public: Widget() { ++count; } Widget(const Widget&) { ++count; } ~Widget() { --cou...
组件对象模型的规则
2017-02-06
18
组件对象模型的规则2010-06-24摘要本文的目的是为使用和实行Microsoft的组件对象模型(COM)提供迅捷的参考。读者若想更好的理解什么是COM,以及隐藏在它的设计及体系中的动机,应该阅读组件对象模型的技术说明书(MSDN库,技术说明书)。规则1:必须实现Iunknown如果一个对象没有至少实现一个最小程度为IUnknown的接口,那它就不是Microsoft的组件对象模型(COM)。接口设计规则接口必须直接或间接地从IUnknown继承。接口必...
C++编码中减少内存缺陷的方法和工具
2017-02-06
19
C++编码中减少内存缺陷的方法和工具2010-06-24 vc知识库 程振林 方金云 唐志C++语言是桌面系统,尤其是系统软件、大型应用软件的主流开发语言。C++语言以其灵活性著称,同时也更复杂。利用C++编写健壮的代码,更具有挑战性。C++允许动态内存管理, 同时也容易导致更多和内存相关的问题。一般而言, 除了系统设计上的缺陷, 基于C++的软件的缺陷和错误大部分都和内存缺陷(主要包括内存访问错误和内存泄漏两类)相关。 所以,消除代码中的内存相关缺陷,成...
在预先定义的内存位置构造一个对象
2017-02-06
18
在预先定义的内存位置构造一个对象2010-06-24赵湘宁常常有人问这样一个C++问题:如何在预先定义的内存位置构造一个对象?在预先定义的内存缓冲构造一个对象有许多有用的应用。例如,一个定制的垃圾搜集器能使用一个大的预分配内存缓冲,用户在这个缓冲中构造其对象。当不再需要这些对象时,它们的存储空间被自动收回。这个技术在重视时间的应用中也很有用。在预先分配的内存缓冲构造一个对象是一种“时间常量”操作,之所以这样说是因为程序分配操作本身不...
C++中的模板(template)
2017-02-06
19
C++中的模板(template)2010-06-24张笑猛网上我最喜欢的技术文章是类似某何君所著“CVS快速入门”或者“UML reference card”之类,简短扼要,可以非常快的领着你进入一个新天地。而对于比较长的文章我通常是将其保存到硬盘上,然后准备着“以后有时间”的时候再看,但它们通常的命运都是“闲坐说玄宗”,直到某一天在整理硬盘时将它们以&ldq...
在ActiveX控件中引入窗体技术
2017-02-06
18
在ActiveX控件中引入窗体技术2010-06-24一、引入Dialog技术下面介绍在制作ActiveX控件时引入有模式对话框技术,制作步骤如下:创建一新的MFC ActiveX ControlWizard项目,取名为Hello,其他用缺省选项;在ResourceView页中新增一对话框资源,命名为IDD_HELLODIALOG,可以在对话框上放自己的控件;为对话框资源IDD_HELLODIALOG创建新类CHelloDialog,从CDialog继承;...
私有数据一定安全吗?
2017-02-06
18
私有数据一定安全吗?2010-07-03 VC知识库 hATEmATH的网上田园C++的访问说明符(public private protected)提供了对类内部数据的访问限制。我以前一直以为将成员说明为private就可以保证其数据不被外界读取和改写,直到现在发现自己误解了。且看这个小例子:#include <iostream>using namespace std;class stru_a{public: stru_a::stru_...
<<
111
112
113
114
115
116
117
118
119
120
>>
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图