摘要: 1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...); void foo(parm_list,...); 2:函数参数的传递原理 函数参数是以数据结构:栈的形式存取,从右至左入栈.eg: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHi... 阅读全文
posted @ 2008-12-24 17:08 Evilbaniry 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入... 阅读全文
posted @ 2008-12-24 16:51 Evilbaniry 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下: 来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代... 阅读全文
posted @ 2008-12-24 16:45 Evilbaniry 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 对于一个初学者来说,对于如下函数定义,一定会有点迷惑。STDAPI DllGetClassObject(){} 也许你会问该函数定义中的STDAPI是什么东东。如果你对此迷惑,那我告诉你在WINNT.h文件中STDAPI宏定义如下: #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE 在MSDN中STDAPICALLTY... 阅读全文
posted @ 2008-12-24 16:30 Evilbaniry 阅读(850) 评论(0) 推荐(0) 编辑
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->1#include 2#include 3#include 4 5intmain() 6{ 7usingnamespacestd; 8... 阅读全文
posted @ 2008-12-24 15:59 Evilbaniry 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 使用 cout 显示WCHAR发现,并不能正确显示,如下面: Code intmain() { usingnamespacestd; WCHARwc[3]={L'W',L'I',L'\0'}; cout<<wc; 显示结果为0012FE3。 初步分析是cout并没有实现对WCHAR的重载。google后得到信息,使用wcstombs()函可以把WCHAR转化... 阅读全文
posted @ 2008-12-24 15:42 Evilbaniry 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。 请看下面的程序清单badptr.c: Code hig... 阅读全文
posted @ 2008-12-24 14:28 Evilbaniry 阅读(292) 评论(0) 推荐(0) 编辑
摘要: offsetof(s,m)解析 今天看代码时,发现一个有用的东东,offsetof(s,m),这是一个宏,定义如下: #define offsetof(s,m) (size_t)&(((s *)0)->m) 然后到网上查了一下,发现还真的是很有用,附带一位大侠的解说: Code highlighting produced by Actipro CodeHighlighter (f... 阅读全文
posted @ 2008-12-24 14:11 Evilbaniry 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。 3.1 static_cast 用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针... 阅读全文
posted @ 2008-12-24 13:59 Evilbaniry 阅读(386) 评论(0) 推荐(0) 编辑
摘要: Author:Jeffrey 在制定ANSI C标准时,引入了pragma提示符,这个指示符来自Ada。#pragma用于向编译器提示一些信息,诸如把某个特定的函数扩展成内联,或者取消边界检查,它并非C所固有。 目录: (0) 前言 (1) #pragma message能够在编译信息输出窗口中输出相应的信息 (2) #pragma code_seg能够设置程序中函数代码存放的代... 阅读全文
posted @ 2008-12-24 09:41 Evilbaniry 阅读(385) 评论(0) 推荐(0) 编辑