基础概念
jiangdf
这个作者很懒,什么都没留下…
展开
-
函数调用规范__cdecl和__stdcall的区别
__cdecl __stdcall C 和 C++ 程序的缺省调用规范 为了使用这种调用规范,需要你明确的加上 __stdcall(或 WINAPI )文字。即 return-type __stdcallfunction-name[(argument-list)] 在被调用函数 (转载 2009-05-13 21:44:00 · 485 阅读 · 0 评论 -
C++多态汇编分析
一:说明 C++ 中由虚函数所引起的多态总让人有一种神秘感,本文通过对汇编代码的分析使整个调用过程一目了然,但前提是读者对C++想本身有所了解,且对虚函数的调用应该有一个清晰的概念,另外读者还应有一定的汇编基础。 文章结构: 一:说明 二:C++ 源码 三:分析转载 2009-05-16 14:36:00 · 800 阅读 · 0 评论 -
static_cast 和 reinterpret_cast的区别
大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我们在使用static_cast时可能会有点模糊。在本文中,我将说明static_cast泛型(Generic Types) float f = 12.3; float* pf = &f; // static cast // 成功编译, n转载 2009-05-21 09:58:00 · 1597 阅读 · 2 评论 -
动态库导出声明 : extern "C" __declspec(dllexport) 与 __declspec(dllexport)
最近在做项目,在动态加载动态库后,使用GetProcAddress( HMODULE hModule, LPCWSTR lpProcName)获取导出的函数的地址时,发现不能获得函数地址。通过检查发现是声明动态库导出的定义不同导致:在使用extern "C" __declspec(dllexport)时,可以使用GetProcAddr获得函数地址。在使用__declspec(dllex原创 2012-07-05 16:25:23 · 10556 阅读 · 0 评论 -
从printf谈可变参数函数的实现
文章概要:一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣。1. 使用情形1.int a =10;2.double b = 20.0;3.char *str = "Hell转载 2013-03-29 23:00:50 · 1070 阅读 · 1 评论 -
有符号的整数-负数在内存的存放形式
有符号整数,正数的表示区间为:0x00000000-0x7FFFFFFF;负数的表示区间:0x80000000-0xFFFFFFFF。负数在内存中都是以补码的形式存放,补码的规则是用0减去这个数的绝对值。也可以表示为对这个数取反加1;为什么补码是对这个数取反加1呢?因为,X+X(反)=0xFFFFFFFF,于是X+X(反)+1=0,所以可以推导出0-X=X(反)+1;计算机只会做加法,原创 2013-03-23 22:32:00 · 5476 阅读 · 0 评论