摘要: 代码阅读——十个C开源项目1. Webbench2. CMockery3.Libev4. Memcached5. Lua6. SQLite7. Redis8. Nginx9. UNIXv610. NETBSD代码阅读——十个C开源项目1. WebbenchWebbench是一个在linux下使用的非... 阅读全文
posted @ 2015-01-05 22:38 果丁 阅读(214) 评论(0) 推荐(0) 编辑
摘要: #TITLE:字符集和字符编码 #KEYWORDS: others #DATE:1989-05-17 00:00 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。" 并不是所有简单的问题都... 阅读全文
posted @ 2015-01-05 19:59 果丁 阅读(188) 评论(0) 推荐(0) 编辑
摘要: DSW:全称是Developer Studio Workspace,最高级别的配置文件,记录了整个工作空间的配置信息,她是一个纯文本的文件,在vc创建新项目的时候自动生成DSP:全称是Developer Studio Project,也是一个配置文件,不过她记录的是一个项目的所有配置信息,纯文本文件OPT:与DSW、DSP配合使用的配置文件,她记录了与机器硬件有关的信息,同一个项目在不同的机器上的opt文件内容是不同的CLW:记录了跟ClassWizard相关的信息,如果丢失了clw文件,那么在Class View面板里就没有类信息 PLG:实际上是一个超文本文件,可以用Internet Ex 阅读全文
posted @ 2013-09-29 15:08 果丁 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 编辑.插入制表符Tab将文本行缩进指定数量的空格,如 5 个。(此快捷键支持多行操作)编辑.剪切行Ctrl + L Shift + Alt + L将所有选定的行剪切到“剪贴板”,若尚未选定任何内容,则将当前行剪切到剪贴板。(vc2003)(Shift + Alt + L 不起作用)编辑.删除行Ctrl + Shift + L删除所有选定行;如果没有选定行,则删除当前行。编辑.上开新行Ctrl + Enter在插入点之上插入一个空行。(不论光标在一行的何处)编辑.下开新行Ctrl + Shift + Enter在插入点之下插入一个空行。(这样就不用先将光标移到行首或行尾了)编辑.行转置Shift 阅读全文
posted @ 2013-09-29 14:53 果丁 阅读(275) 评论(0) 推荐(0) 编辑
摘要: c中float精度问题float存储格式为:S E M1位符号位 8位指数 23位尾数转成数值即为:V=(-1)^S * 1.M * 2^(E-127)对于16.5转成二进制为00010000.1==>1.00001*2^4,那么在内存的表示为:符号位 指数4+127 = 131 尾数0 10000011 00001 000000000000000000在转换过程中由于需要往右移位, 可见对于float数整数部分越大,小数部分的精度就越低对float数来说有效数字约为7位(2^23约等于10^7),所以整数部分占的位数越多,小数部分的精度就越低,当整数部... 阅读全文
posted @ 2013-09-14 17:39 果丁 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 1.new、delete、malloc、free关系delete会调用对象的析构函数,和new1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数 阅读全文
posted @ 2013-08-29 12:14 果丁 阅读(257) 评论(0) 推荐(0) 编辑
摘要: #include#includevoid main(){char ch;printf("Input a line:\n");while((ch=getchar())!='\n'){if(isalpha(ch))putchar(ch+1);这里为什么不能是ch=ch+1;putchar(ch)呢?elseputchar(ch);}putchar(ch);为什么这句意思是输出换行符?}另外单看这程序的意思不是输入一个字符就立马输出么?为什么会是输入一行后才输出来?不懂,求解释。答:不能是ch=ch+1;putchar(ch);可以是{ch=ch+1;putcha 阅读全文
posted @ 2013-08-28 21:56 果丁 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 用 RPC / COM /CORBA 技术来编写分布式系统时都需要接口定义语言 (IDL)。IDL特点:1、IDL 是一种规范语言。2、IDL 看上去很像 C 语言。3、OMG IDL 的目的是定义接口和精简分布对象的过程。4、IDL分离对象的接口与其实现。5、IDL剥离了编程语言和硬件的依赖性。6、使用IDL定义接口的客户机程序员不知道接口背后的实现细节。7、IDL提供一套通用的数据类型,并以这些数据类型来定义更为复杂的数据类型。本文讲解 OMG IDL 的内置类型和关键字。OMG 接口定义语言内置类型表:类型范围最小大小(bit)short-215 到 215-116unsigned sh 阅读全文
posted @ 2013-08-22 00:20 果丁 阅读(2130) 评论(0) 推荐(0) 编辑
摘要: 头文件 #include 定义函数 int sscanf (const char *str,const char * format,........); 函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。 返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。 如果只读入了第 阅读全文
posted @ 2013-08-20 17:25 果丁 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。 因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成 阅读全文
posted @ 2013-08-20 17:08 果丁 阅读(1355) 评论(0) 推荐(0) 编辑