wink's

梦想总比现实闪耀,所以我一路追寻

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年7月28日

摘要: DEBUG_PRINT在程序里为了调试的方便,我们经常要打印一些信息,如函数的返回值什么的,同时我们又不想在发布的程序中显示这些信息,于是我们这样实现:#ifdef _DEBUG printf("This is a debug information.\n");#endif 但是,程序中需要打印的调试信息的地方可能很多,每次都这样写也挺麻烦,所以我们定义宏#ifdef _DEBUG #define debug_print(s) printf(s)#else #define debug_print(s)#endif 这样,如果编译的时候定义了_DEBUG选项(DEBUG版), 阅读全文
posted @ 2012-07-28 01:16 wink's 阅读(578) 评论(1) 推荐(0) 编辑

2012年7月20日

摘要: (转自http://hi.baidu.com/dbfr2011818/item/8c947f2f353c00d60f37f907)在一个大的项目里面,我经常都会感到良好编程风格的作用。有的时候一些Struct或者Public的Class的数据成员总是让我们感到困惑,因为我们有时候是很难监控到它们是什么时候被改变的,当代码很多很乱的时候,靠“人肉搜索”基本上是无法真正找到改变的代码的,有的时候莫名其妙的就被改掉了,这种行为和可能性都很容易出现的。如果有一组Get和Set的话,可以在这个函数里面设置一个断点就可以知道是什么时候被改变的了。 这种时候大家可以尝试使用数据断点来处理。下面是使用数据断点 阅读全文
posted @ 2012-07-20 23:35 wink's 阅读(2739) 评论(0) 推荐(0) 编辑

2012年6月22日

摘要: constantnothrow<new>extern const nothrow_t nothrow;Nothrow constantThis constant value is used as an argument foroperator newandoperator new[]to indicate that these functions shall not throw an exception on failure, but return a null pointer instead.By default, when thenewoperator is used to a 阅读全文
posted @ 2012-06-22 10:22 wink's 阅读(354) 评论(0) 推荐(0) 编辑

2012年5月12日

摘要: thunk 在网络词典上解释为:形实转换程序或替换程序。那么到底如何转换?如何替换呢?其实可以把 thunk 理解为一小段代码,但这段代码并不是静态编译在程序的代码段中的,而是在程序运行过程中自动生成的一段代码,然后让程序在合适的时机去执行这段代码。下面是一个替换函数参数的 thunk 示例:?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <windows.h> #include <iostream> // 定义一个函数指针。 阅读全文
posted @ 2012-05-12 22:21 wink's 阅读(2010) 评论(0) 推荐(0) 编辑

2012年5月7日

摘要: 静态链接库LIB和动态链接库DLL的区别 创建和示例转自 :http://www.cnblogs.com/Winston/archive/2008/07/05/1236273.html1.什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态 阅读全文
posted @ 2012-05-07 20:37 wink's 阅读(324) 评论(0) 推荐(0) 编辑

2012年5月4日

摘要: 开源网络通信库参考2011-02-27 09:21734人阅读评论(0)收藏举报Sockets tcp/ip communication libraryC++ Sockets LibraryThis is a GPL licensed C++ class library wrapping the berkeley sockets C API, and therefore works on most unixes and also win32. The library is in use in a number of real world applications, both commercia 阅读全文
posted @ 2012-05-04 22:52 wink's 阅读(2382) 评论(0) 推荐(0) 编辑

2012年4月21日

摘要: 使用VC++ 6.0编译使用STL的程序(如使用map、vector等)有时会出现很多warning,这是什么原因呢?使用VC++ 6.0产生的warning大多是同一个类型,例如4786,可以在预编译命令中关掉这类warning:#pragma warning( disable: 4786 )注意一定要放在#include前面 阅读全文
posted @ 2012-04-21 21:27 wink's 阅读(449) 评论(0) 推荐(1) 编辑

摘要: 隔离级别(isolation level)脏读不可重复读幻读l隔离级别定义了事务与事务之间的隔离程度。l隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:l未提交读(read uncommitted)l提交读(read committed)l重复读(repeatable read)l序列化(serializable)通过一些现象,可以反映出隔离级别的效果。这些现象有:l更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。l脏读(dirty read 阅读全文
posted @ 2012-04-21 20:10 wink's 阅读(238) 评论(0) 推荐(0) 编辑

2012年4月2日

摘要: 作者: wink(转载请注明出处,谢谢)//in Header.h@interface Header{}@end//in Header.m@interface Header()@end这是个非常常见的设计,为什么在.m文件里面,也要出现一个接口声明呢?这很类似于一个分类,但其实它不是一个分类(或者你也可以叫它anonymousCatogary),其实这是一个叫做class extension的东西说说区别: 1. 首先 extension 可以重声明一个数据成员,比如一个数据成员是只读的,你可以把它变成可读写 2. 分类根本不同意你扩展数据成员,它只扩展一些方法, 但是在Clang/LLV.. 阅读全文
posted @ 2012-04-02 10:00 wink's 阅读(3411) 评论(1) 推荐(2) 编辑

2012年3月23日

摘要: Objective-C 可以算作 Apple 平台上“唯一的”开发语言。很多 Objective-C 的教程往往直接从 Objective-C 开始讲起。不过,在我看来,这样做有时候是不合适的。很多程序员往往已经掌握了另外一种开发语言,如果对一门新语言的理解建立在他们已有的知识之上,更能 起到事半功倍的效果。既然名为 Objective-C,它与 C 语言的联系更加密切,然而它又是 Objective 的。与 C 语言联系密切,并且是 Objective 的,我们能够想到的另外一门语言就是 C++。C++ 的开发人员也更普遍,受众也会更多。于是就有了本系列,从 C++ 的角度来讲述 Obj.. 阅读全文
posted @ 2012-03-23 20:11 wink's 阅读(829) 评论(0) 推荐(0) 编辑