2014年6月20日

摘要: C语言的设计模式-接口隔离接口隔离:定义为客户端不应该依赖它不需用的接口,在C语言中我们可以把头文件看成一个模块的接口,根据接口隔离原则也就是说这个头文件中只能包含外部需要的接口,但在实际的项目中往往头文件都不符合接口隔离原则。1:内、外部接口的隔离:头文件中通常包含了模块内部接口(内部类型定义、内... 阅读全文

posted @ 2014-06-20 14:01 Michael83 阅读(212) 评论(0) 推荐(0)

摘要: C语言的设计模式-单一职责单一职责原则:通常的定义是只专注于做一件事和仅有一个引起它变化的原因。对于接口、实现、函数级别往往我们比较容易关注单一职责,大家谈的也比较多,但对于返回值、参数可能不会有太多的人关注。但往往就是这些不符合单一职责原则的设计可能导致一些很难发现的BUG。看看下面这段代码:pB... 阅读全文

posted @ 2014-06-20 14:00 Michael83 阅读(226) 评论(0) 推荐(0)

摘要: C语言的设计模式-面向对象机制的实现(一)为什么要用C来模拟面向对象的机制,在实际的工作中我们往往在感慨一些面向对象的经典设计模式由于C语言的限制无法使用,其实通过简单的模拟面向对象的行为,在C语言中也可以使用这些模式。1:类的构建类描述了所创建的对象共同的属性和方法。我们在一个源文件中通过把数据和... 阅读全文

posted @ 2014-06-20 13:59 Michael83 阅读(236) 评论(0) 推荐(0)

摘要: SPWebServer:一个基于 SPServer 的 web 服务器框架博客分类:OpenSource项目应用服务器框架Web网络应用多线程看到这个题目,估计很多人会问:为什么要再实现一个 web 服务器?这里有几个原因:1.这是一个 web 服务器框架,不是一个完整的 web 服务器。也就是说 ... 阅读全文

posted @ 2014-06-20 13:56 Michael83 阅读(257) 评论(0) 推荐(0)

摘要: 最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)导读1.什么是序列化?2.为什么要序列化?好处在哪里?3.C++对象序列化的四种方法4.最常用的两种序列化方案使用心得正文1.什么是序列化?程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中... 阅读全文

posted @ 2014-06-20 13:52 Michael83 阅读(163) 评论(0) 推荐(0)

摘要: protobuf-c的学习总结1、前言 项目中用到protobuf-c进行数据序列化,好处在于后期程序扩展性非常好,只需要改动proto的定义就可以保持兼容,非常的灵活方便。关于protobuf-c的详细介绍可以参考google官方文档。https://code.google.com/p/pr... 阅读全文

posted @ 2014-06-20 13:41 Michael83 阅读(483) 评论(0) 推荐(0)


2013年2月28日

摘要: C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf(const char *format, arg_list)scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将" 阅读全文

posted @ 2013-02-28 17:57 Michael83 阅读(144) 评论(0) 推荐(0)

摘要: main函数有两个参数main(int argc,char *argv[])第一个是整型代表整个参数的个数;第二个是字符型数组,argv【0】是指指令,也就是一般c程序的文件名(在Linux环境下是编译好的可执行文件名),argv【1】、argv【2】.......都是相应的参数。例如:我编了一段程序是将file1的程序拷贝到file2中,同时我的c语言代码编译后的可执行文件名为copy那么在使用时我的格式是:copy file1 file2;其中argv【0】就是copy;argv【1】就是指file1;argv【2】就是指file2. 阅读全文

posted @ 2013-02-28 17:55 Michael83 阅读(251) 评论(0) 推荐(0)


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3