代码改变世界

传道解惑 软件开发技术名词解密

2007-03-30 06:21 by ubunoon, 289 阅读, 0 推荐, 收藏, 编辑
摘要:[转载]http://www.sjhf.net/blog/user1/sjhf/archives/2006/2006412173840.htm序:去年为了总结自己所学习/接触过的技术,也顺便为初学者少走弯路指明一些方向,可惜后来诸事缠身未能继续,十分遗憾,现放到自己的BLOG上来鼓励自己将此继续下去。 "Win32编程” 很不幸,我从开始学习编程到理解这个名词中间隔了很长的时间(上个世纪的学习环境可见一斑)。很长时间里我都不明白32是指什么,我用过Dos, Win31,win95,win97...但好像没用过名为Win32的操作系统啊?很久以后我才知道,32在这里并不是指操作系统的版 阅读全文

[转]Winsock程序设计初步之 Winsock编程原理

2007-03-25 22:59 by ubunoon, 213 阅读, 0 推荐, 收藏, 编辑
摘要:Winsock程序设计初步之Winsock编程原理 本课程主要讲Windows中TCP/IP编程接口Winsock,版本为1.1。高版本的Winsock实际与1.1版相差不多,主要是进行了一些扩充,如可超越TCP/IP协议直接用socket来实现IPX、NETBIOS等其它通信协议。 这叙述方便在本文的其余部分中提到的Winsock指的就是Winsock1.1。 通过Winsock可实现点对点或广播通信程序,实际这两者之间的区别不大,编程时其程序流程所用代码几乎相同,不同的地方在于目标地址选择的不同。本课程中所举实例为点对点的形式,并以客户/服务器形式来构建通过Winsock进行通信的点对点通 阅读全文

构造函数与拷贝解析

2007-03-18 20:43 by ubunoon, 176 阅读, 0 推荐, 收藏, 编辑
摘要:当我们声明一个类的时候,可能会需要另外一个类的实体去初始化一个新定义的类。//类定义//此类只能实现数据的拷贝,而不能够对资源进行操作。classScreenOnlyCopyData...{public:shortheight()...{/**//*...*/}shortweight()...{/**//*...*/}stringscreen()...{/**//*...*/}private:string_screen;string::size_type_cursor;short_height,_weight;};//当有一个类对象实现时,ScreenOnlyCopyDatas1;//对s1进 阅读全文

Hash函数学习笔记

2007-03-16 23:42 by ubunoon, 315 阅读, 0 推荐, 收藏, 编辑
摘要:Hash函数是一种映射关系,通过一种映射关系,将原本的字符串,数字或其他关键信息转换为一个索引值。用数学关系式表示为: index = function(key) 数序上有不同的映射关系,不同的key,有可能会获取相同的index,这个时候的index就是有重码,也就是collosion,这就导致了Hash函数的不唯一性,从而在查找index下的关键字时也是有冲突的。目前一些常用的数学映射关系为: 1、直接定址法,就是直接使用key作为index 2、数字分析法,取key中的若干位数作为index,有较多冲突 3、平法取中法,取key的平方,然后取中间几位作为index(index与key值密 阅读全文

mysql中的mysql_real_connect连接参数设置

2007-03-05 22:42 by ubunoon, 2742 阅读, 0 推荐, 收藏, 编辑
摘要:在前一篇文章中,讲述了如何进行mysql源程序代码的编译链接,但是没有讲述运行情况,在按照上一篇文章代码下进行编译运行后,发现无法链接数据库文件,显然是在mysql_real_connect()函数中出现了问题。在mysql的英文手册中找到关于mysql_real_connect()的如下描述: //函数原型描述MYSQL*mysql_real_connect(MYSQL*mysql,constchar*host,constchar*user, constchar*passwd,constchar*db,unsignedintport,constchar*unix_socket, unsign 阅读全文

Linux下进行MYSQL的C++编程起步手记

2007-02-27 20:27 by ubunoon, 1007 阅读, 0 推荐, 收藏, 编辑
摘要:首先安装必需的开发包sudoapt-getinstallgccg++libgcc1libg++makegdb安装MYSQL的C语言开发包sudoapt-getinstalllibmysql++-devlibmysql++2c2alibmysqlclient15-devlibmysqlclient15off把lib文件拷贝到公用sudocp/usr/lib/mysql/*/usr/lib/建立一个新文件test.cppnanotest.cpp输入内容#include<stdio.h>#include<stdlib.h>#include"/usr/include/ 阅读全文

main的第三个参数

2007-02-24 16:19 by ubunoon, 239 阅读, 0 推荐, 收藏, 编辑
摘要:main有第三个参数为: env 即环境变量main(int argc,char *argv[],char **env)其中的env为环境变量,虽被广泛支持,但POSIX不支持。在Linux系统中也可以使用全局变量extern char ** environ;来获取所有的环境变量。 阅读全文

fork函数

2007-02-24 13:36 by ubunoon, 209 阅读, 0 推荐, 收藏, 编辑
摘要:据介绍,fork函数可以作为进程的复制方法,一般情况下,fork函数的子进程和父进程共享一个代码段,而数据段、堆栈段由父进程复制到子进程,但是事实情况下为,fork函数的子进程只复制了关于该几个段的寄存器地址,只是在子进程更改数据的时候才更改父进程。(来自 Linux Programmer's Guide)一个非常有趣的是if和esle将扮演一个非常特殊的角色,而不是我们平时所认为的单一执行的方式了。pid_t childpid;childpid = fork();if(-1 == childpid ) { perror("fork"); exit(1);}if(0 阅读全文

抛玻璃算法

2007-02-18 09:33 by ubunoon, 295 阅读, 0 推荐, 收藏, 编辑
摘要:下面为例子来源;网上闲逛,看到一算法题大体如下: 有一幢100层高的大楼,给你两个完全相同的玻璃棋子。假设从某一层开始,丢下玻璃棋子就会破碎。那么怎么利用手中的两颗棋子,用一种什么样的最优策略,知道这个临界的层高呢? 大致想了下... 得出的第一个算法是33 66 99 IF( 既第一个Q从33楼扔,如果碎了. 就从第一层向33层枚举..) { 假设最糟糕的情况是32楼是临界点. 33楼 + 1 + 2 +3 ....... +32 = 33次... 嗯...上下楼33,累死了...}else IF(33楼扔下去没碎,那么从66楼往下扔) 最糟糕的情况又发生了 =.=! 65层才是临界点.那么 阅读全文

转贴:CRC算法描述,实现等到下次

2007-02-18 07:49 by ubunoon, 206 阅读, 0 推荐, 收藏, 编辑
摘要:CRC校验码的基本思想是利用线性编码理论, 在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。 在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC. CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。 CRC的本质是模-2除法的余数,采用的除数不同, 阅读全文