题目有点大,其实本文只是要DEMO一下用函数指针在VC++实现回调。
一、函数指针
那么什么是函数指针呢?说白了就是指向函数的指针,它是一个变量。
通常,函数会被编译为一段二进制机器码。每个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。
可以把函数的这个首地址(入口地址)赋予一个指针变量,使该指针变量指向该函数。
那么就可以通过该指针变量就可以找到并且调用这个函数了...
分类:
编程语言 时间:
2014-06-08 03:53:46
阅读次数:
369
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,他们都有相应的地址,所谓数组的指针是指数组的其实地址,数组元素的指针是数组元素的地址。一个数组是有连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量)组成的。每个数组预元素按...
分类:
其他好文 时间:
2014-05-31 17:11:15
阅读次数:
153
第一章 熟悉工作环境和相关工具1.1 熟悉OllyDBG 操作技巧1.2 反汇编静态分析工具
IDA(最专业的逆向工具) 快捷键 功能 Enter 跟进函数实现 Esc 返回跟进处 A 解释光标处的地址为一个字符串的首地址 B 十六进制数与二进制数转换
C 解释光标处的地址为一条指令 D 解释光标....
分类:
编程语言 时间:
2014-05-30 23:58:34
阅读次数:
673
有序容器:vector[连续内存]
拥有一段连续的地址空间,首地址不变,按顺序存放,拥有高效的随机存储和访问,毕竟有迭代器作为序号。
从尾部插入和删除很快,其他地方插入和删除操作的时间复杂度就高喽,需要大范围内存的复制粘贴,效率低下,就像数组一样.有空间预留的特点,操作起来消耗内存空间。capa.....
分类:
其他好文 时间:
2014-05-26 07:10:59
阅读次数:
244
数组名是数组的首地址,就是数组中的第一个元素的地址,是常量。常量是不能值在=的左边的。数组和指针的区别在于,指针是变量,是用来存储指向数据的地址的变量,而数组名是常量。一般情况下申明一个数组,比如char a[10]; 之后 数组名a都是数组的首地址,是一个地址常量。但是在函数申明的形参列表中除外,比如:
int fo(char []);
在这种情况下的申明与
int fo(char...
分类:
编程语言 时间:
2014-05-25 16:29:42
阅读次数:
278
说明:
******不同的编译器和处理器,其结构体内部的成员有不同的对齐方式。
******使用sizeof()运算符计算结构体的长度。
###结构体中每个成员相对于结构首地址的偏移量都是成员大小的整数倍,如果有需要编译器会在成员之间加上填充字。
###结构体的总大小是结构体最宽基本类型成员大小的整数倍。如果需要编译器会在最后一个成员之后加上填充字。
struct A
{ unsigne...
分类:
编程语言 时间:
2014-05-25 00:40:40
阅读次数:
314
从C到C++ (2)一、 C++中增加了作用域标示符 ::1、
用于对局部变量同名的全局变量进行访问。2、 用于表示类成员。二、 new、delete运算符1、
new运算符用于创建堆空间,成功返回首地址失败抛出异常(C++有异常处理机制,C语言中无此机制所以结果要与NULL比较),语法: 指针变量...
分类:
编程语言 时间:
2014-05-23 23:07:07
阅读次数:
347
原则一:结构体中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算)。原则二:在经过第一原则分析后,检查计算出的存储单元...
分类:
其他好文 时间:
2014-05-19 14:44:33
阅读次数:
270
1.基础知识/*可以定义大小是0的数组,但不能引用,因为没有指向任何对象new
string[10]调用类的默认构造函数new int[10]没有初始化,但new
int[10]()会将数组初始化成0,返回第一个元素的首地址*/#include #include using namespace st...
分类:
编程语言 时间:
2014-05-17 20:11:13
阅读次数:
316
做一件事情首先应该知道它的目的是什么。
container_of的目的:如何通过结构中的某个变量获取结构本身的指针。
总体思路:假想一下,你的结构体中有好几个成员,你如何通过里面的“任一成员”获取
整个结构体的首地址呢。container_of的做法就是通过typeof定义一个与“任一成员”同类型
的指针变量pvar_a(假设变量名就是pvar_a),并让指针变量pvar_a指向这个“...
分类:
系统相关 时间:
2014-05-14 19:56:15
阅读次数:
494