- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 strtok实现
char * __cdecl strtok ( char * string, const char * control ){ unsigned char *str; const unsigned char *ctrl = control; unsigned char map[32];
2013-07-28 10:07:45
666
转载 void 指针小结
http://hi.baidu.com/%B3%CB%B7%E7%CC%A4%C0%CB2008/blog/item/ff1066faeb5a19929e5146ad.html今天在看memcpy函数原型的时候遇到void指针,我有些地方不明白,就从网上搜集了一些资料,然后总结一下。先来看下memcpy函数的原型:void * memcpy ( void * destination,
2011-11-24 14:53:14
557
转载 在Emacs中使用gdb调试程序
1 引言 2 准备工作:将调试信息编译在程序中 3 开始:开启Emacs的调试模式GUD 3.1 运行gdb 3.2 gdb界面 3.3 小结 4 调试:设置断点,控制程序流程 4.1 设置、删除断点 4.2 运行程序 4.3 单步执行、运行到光标处 4.4
2011-10-11 19:40:42
869
转载 makefile详解
转自陈皓 (优快云)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这
2011-10-11 17:20:52
715
转载 Emacs下工程的编译:makefile
http://blog.youkuaiyun.com/xiaobai1593/article/details/6653487文章参考:makefile详解个人环境介绍ubuntu11.04操作系统GUN Emacs 23.2.1后面的叙述都基于上述环境。另外,本文
2011-10-11 17:15:29
1566
转载 gdb调试器用法---按函数划分
转载自:http://code.google.com/p/ldd6410/wiki/GDBDebugGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:启动程序,可以按照工程师自定义的要求随心所欲的运行程序。让
2011-10-11 17:12:51
725
转载 C/C++ 语言中的表达式求值
裘宗燕:C/C++ 语言中的表达式求值经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a =
2011-08-30 20:16:39
475
原创 汇编学习杂记《1》
ret:pop ip 用栈中的数据修改IP类容,实现近转移retf :pop cs;pop ip call:当前IP或者CS类容压栈。再进行转移。具体用法:① call 标号 push ip; jmp near ptr
2011-07-12 23:20:07
481
转载 MS-VC 使用MAP文件快速定位错误行 .
**********************************************************************************************************************************
2011-07-05 16:32:34
1997
原创 汇编学习--jmp指令
jmp reg IP=(reg);jmp short 标号:IP=IP+8位位移(CPU在执行jmp指令时,并不知道跳转的地址。它只是计算是相对位移)jmp near ptr 标号:IP = IP+16位位移jmp far ptr 标号:段间转移 又称远转移 (CS)=标号所在段的段地址;(IP)=标号所在段中的偏移地址jmp word p
2011-06-20 13:55:00
2090
转载 C++虚函数深入(三)
虚析构函数大家都知道,在C++里需要自己严格管理好资源的分配和回收。通常情况下,在一个对象被析构的时候,是要由其释放其申请到的各种资源的。最常见的,当然就是内存资源啦。当只有一个类的时候,我们可以不用考虑太多,只要在析构函数里检查并释放所有申请到的资源即可。但是在这个类继承了一个抽象接口基类时,就有点点不一样了。让我们看看类的析构过程:在大多数的类的使用时,通常都是直接删除该类的实例对象,然后该类的析构函数就会被调用,从而使得这个类在析构函数里执行的资源释放代码被执行到。如果这个类继承了其他类,那么编译器还
2011-05-25 22:12:00
688
转载 C++深入虚函数(二)
虚函数的作用 虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用 多级继承时的虚函数表内容 虚函数如何执行父类代码 多继承时的虚函数表定位,以及对象布局虚析构函数的作用 虚函数在QT的信号与槽中的应用 虚函数与inline修饰符,static修饰符 前面我们尝试了一个简单的例子,接下来尝试一个多级继承的例子,以及一个多继承的例子。主要涉及到以下问题:多级继承时虚函数表的内容是如何填写的,如何在多级继承的情况下调用某一级父类里的虚函数,以及在多继承(多个父类)的情况下的对象
2011-05-25 22:11:00
746
转载 C++虚函数解析(一)
关注问题:虚函数的作用 虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用多级继承时的虚函数表内容 虚函数如何执行父类代码 多继承时的虚函数表定位,以及对象布局 虚析构函数的作用 虚函数在QT的信号与槽中的应用 虚函数与inline修饰符,static修饰符 啰嗦两句虚函数在C++里的作用是在是非常非常的大,很多讲述C++的文章都会讲到它,要用好C++,就一定要学好虚函数。网络上可以google到很多很多关于它的文章,这一次的学习,我不准备去只是简单的阅读了解那些文章,而
2011-05-25 21:06:00
584
原创 STL迭代器学习
STL中心思想在于:将数据容器containers和算法algorithms分开,彼此独立设计,最后再 以一贴胶着剂将它们撮合在一起。迭代器是一种行为类似指针的对象。每一种STL容器都提供有专属迭代器,避免暴露太多的容器实现细节,将所有实现细节封装起来。
2011-05-22 19:19:00
594
原创 Traits技法在函数模板中的使用
Traits:类型的else-if-then机制简单来说,traits的重要性就在于能在编译时间(compile-time)通过类型(type)确定函数的调用,尽管我们往往习惯于在运行时间(run-time)通过值(value)来确定【traits是类型驱动(type-driven),依照具体的类型产生相应的模板类或模板函数,而比如多态则是在运行时间通过值来确定调用函数的,会付出性能上的代价】。更妙的是,traits能让您根据其产生环境(context)作出类型判定,使得代码更清晰可读,更易于维护,这正应了
2011-05-21 23:22:00
655
原创 Traits 学习笔记(一)
Traits:一种聚合了有用的类型和常数、用以替代模板参数的类,成功地实践了“extra level of indirection(额外的中间层)”这句可以解决所有软件难题的名言。(A class used in place of template parameters. As a class, it aggregates useful types and constants; as a template, it provides an avenue for that "extra level of ind
2011-05-21 11:10:00
763
原创 指向类非static的数据成员和函数的指针用法
#include using namespace std;class point{public: int m_xPos; int m_yPos; mutable int m_zPos;//和m_xPos 还有 m_yPos的区别 static int st_k;public: int get_x()const { //m_yPos++;//const函数无法对数据成员进行修改。(除除非数据成员申明为mutable) m_zPos++; //rig
2011-05-12 13:52:00
691
原创 memcpy() 和memmove()区别
[code=C/C++]/****memcpy.c - contains memcpy routine** Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:* memcpy() copies a source memory buffer to a destination buffer.* Overlapping buffers are not treated specially, so
2011-03-17 13:41:00
665
转载 More Effective C++:避免缺省构造函数
缺省构造函数(指没有参数的构造函数)在C++语言中是一种让你无中生有的方法。构造函数能初始化对象,而缺省构造函数则可以不利用任何在建立对象时的外部数据就能初始化对象。有时这样的方法是不错的。例如一些行为特性与数字相仿的对象被初始化为空值或不确定的值也是合理的,还有比如链表、哈希表、图等等数据结构也可以被初始化为空容器。 但不是所有的对象都属于上述类型,对于很多对象来说,不利用外部数据进行完全的初始化是不合理的。比如一个没有输入姓名的地址簿对象,就没有任何意义。在一些公司里,所有的设备都必须标有一个公司ID
2011-01-17 11:36:00
690
转载 获取类成员偏移量
<br />第一种方式是MFC里使用广泛的宏:对空对象成员取地址<br />#define OFFSET(structure, member) ((int)&((structure*)0)->member); <br />正如我们平时通过某对象的地址指针访问某个成员变量一样,这里只是强制使用0作为该地址,但区别是并没有通过该地址去访问成员变量,而只是用&操作符来获取该成员变量的地址,所以不会出现访问违规的情况。<br />object member address = object address + me
2011-01-17 11:29:00
1403
原创 程序员面试
导读:面试准备的重要性不用编者多言,大家都很清楚。本文是加拿大的一位程序员所写。大家可以看看国外程序员是怎么准备面试。不管你是否认同他的说法,《诗经》中有句话非常好——“它山之石,可以攻玉”。如果你还有其他面试准备方法,不妨在评论或微博中和大家一起分享。一、开门见山一般来说,你(求职者)在面试中会花很多时间谈论以前的经历。如果你还没有想出你的最具代表性的经历/案例,那么你现在是时候该做了。
2010-10-15 13:36:00
756
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人