自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阮建辉的专栏

再NB的肖邦 也弹不出我的愤怒

  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 奇怪的sizeof

对于sizeof,想必大家都是非常熟悉的了;比如:printf(”sizeof int: %d/n”, sizeof(INT));//这里INT被定义成:typedef int INT;恩,结果是:sizeof int: 4;如果我这么写呢(也就是去掉了sizeof的括号):printf(”sizeof int: %d/n”, sizeof INT);当然,结果还是一样的;不过如果我这么写:pri

2004-12-13 19:52:00 1612 2

原创 new的实际形式

如果让我们重载一个new操作符号,那么正统的重载方式为: void * operator new(unsigned int uSize)            (1){return malloc(uSize);}也许你已经发现了,有的时候,new的形式远比这个复杂,比如MFC(在debug版)下的new就是这么个模样:void * operator new(unsign

2004-10-25 21:46:00 1878

原创 网站短信注册的安全之忧

网站短信注册的安全之忧 时下很多网站都提供了短信注册的功能,用户只要注册,便可以享受网站提供的各种收费(或者免费,极少)短信信息服务。当然,注册的过程是免费和快捷的,但是我却发现很多网站在提供用户注册的时候省略了一些重要的步骤,造成了严重的安全隐患。看看下面这是某个网站提供的注册手续,真是“快捷”啊!分析一下这个网页的源代码(提交表单部分):熟悉表单操作的读者应该能看懂当我

2004-09-02 19:22:00 2447 2

原创 COM实现聚合所使用的C++技巧

COM聚合作为COM实现接口复用的一种手段, 在进行多接口转发的时候是一种有效而快速的方法; 不过要在转发之后保证接口函数的语意保持一致, 必须使用一些特定的技巧, 下面的代码就演示了COM在实现聚合时所使用的技巧:class Base{public:    virtual void Output()    {        printf("Base::Output/n")

2004-08-29 19:11:00 3416 4

原创 使用另类方式调用函数

大家可以自己编译运行一下下面的代码,看看为什么是这样哦:)#include #include void __stdcall Test1(){    printf("Test1/n");} void __stdcall Test2(){    printf("Test2/n");} void __stdcall Test3(){    pr

2004-08-29 01:00:00 1759 4

原创 一个单继承类体系的RTTI实现(根据类名判断类指针)

在MFC中,我们见识了MFC中RTTI的实现,在MFC中,使用CruntimeClass以及DECLARE_DYNAMIC和DECLARE_IMPLEMENT宏等实现的RTTI功能相当强大,但是在我们一般的程序中还用不着这么复杂的RTTI,在C++标准中提供的typeid操作符和type_info信息提供的RTTI支持就相当的简单,只是简单的比较两个类对象和指针是否属于同一类;而对于我们平时简单的

2004-08-29 00:45:00 1930

原创 使用C和汇编混合实现strcpy(欢迎扔砖)

我们经常使用的strcpy,相信很多人都知道它的实现了,那么有没有想过自己写一个strcpy呢?在C下面,据说这是很经典的实现方法哦,简洁而干净:char * strcopy2(char * szDst, const char * szSrc){char * szTemp = szDst;while (*szDst++ = *szSrc++);szDst = ‘/0’;re

2004-08-29 00:21:00 4090 10

原创 线程本地存储(Thread Local Storage, TLS)分析与使用

线程本地存储(Thread Local Storage, TLS)简单分析与使用 在多线程编程中, 同一个变量, 如果要让多个线程共享访问, 那么这个变量可以使用关键字volatile进行声明; 那么如果一个变量不想使多个线程共享访问, 那么该怎么办呢? 呵呵, 这个办法就是TLS, 线程本地存储. 它的使用非常之简单, 只要对变量的声明使用__declspec(thread)就OK了.

2004-08-26 22:00:00 11792 8

原创 值交换的两种方法及其效率分析

比如, 我们有两个数a, b要交换值, 我们一般通过这样的方式来达到目的:int c;c = a;a = b;b = c;这样来达到交换a, b值的目的;经常使用位操作的人, 或者会有这样的"高招":a ^= b;b ^= a;a ^= b;这样也能交换a, b的值, 而且还少用了一个中间参数.现在我们看到了我们交换值的两种做法,到底哪一种更好呢?呵

2004-08-25 20:34:00 2484 5

原创 C++虚函数调用的反汇编解析

C++虚函数调用的反汇编解析     作者:阮建辉 虚函数的调用如何能实现其“虚”?作为C++多态的表现手段,估计很多人对其实现机制感兴趣。大约一般的教科书就说到这个C++强大机制的时候,就是教大家怎么用,何时用,而不会去探究一下这个虚函数的真正实现细节。(当然,因为不同的编译器厂家,可能对虚函数有自己的实现,呵呵,这就算是虚函数对于编译器的“多态”了:)。 作为编译型语言,C

2004-08-23 21:11:00 17619 4

原创 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法

也就是在CreateFile的时候打开文件名指定:  “//./Device”就可以了.因为代码比较短, 所以我不做注释, 相信大家看代码就能明白意思了.另外这里读写的都是软盘A盘第0扇区, 如果想读写其他的扇区, 那么可以使用API SetFilePointer.读扇区的方法(下面的代码演示从A盘的第0扇区读出数据, 写入到文件BOOT.BIN中):#include #inclu

2004-08-16 21:27:00 8559 4

Android面试70题

1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存   B、 内存回收程序负责释放无用内存   C、 内存回收程序允许程序员直接释放内存   D、 内存回收程序可以在指定的时间释放内存对象   2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException   B、IllegalArgumentException   C、NullPointerException   D、BufferUnderflowException

2015-06-19

中国联通基于UICC平台的Java卡互操作性技术规范v2 0.doc

中国联通基于UICC平台的Java卡互操作性技术规范v2 0.doc

2011-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除