container_of(ptr,type,member) 用于在已知结构体里面成员member和该成员指针ptr(就是地址)和结构体类型type, 返回该成员所在的结构体的指针(就是地址), 例如已知structstudenta{char*name;intage;}int*page=&age;co...
分类:
其他好文 时间:
2014-10-05 17:43:08
阅读次数:
165
http://see.xidian.edu.cn/cpp/html/483.html一、指针没有指向一块合法的内存定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。浅显的例子就不举了,这里举几个比较隐蔽的例子。1、结构体成员指针未初始化struct student{ char *...
分类:
编程语言 时间:
2014-09-03 19:49:07
阅读次数:
292
new和delete用来申请动态内存空间,一定要配对使用#include #include #include #include #include // using declarations states our intent to use these names from the nam...
分类:
编程语言 时间:
2014-08-16 22:19:51
阅读次数:
280
特殊工具与技术--类成员指针 成员指针可以做到:获得特定成员的指针,然后从一个对象或别的对象获得该成员.成员指针应该包含类的类型以及成员的类型. 一.声明成员指针测试类:class Screen
{
public:
typedef std::string::size_type index;
char get() const;
char get(index ht,index...
分类:
编程语言 时间:
2014-08-15 09:29:27
阅读次数:
346
【C++自我精讲】基础系列六 PIMPL模式0 前言很实用的一种基础模式。1 PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implementation)是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。2 PIMPL优点举例:/...
分类:
编程语言 时间:
2014-08-13 00:41:34
阅读次数:
274
reinterpret_cast代表强制转化,即把pNMHDR强制转化成LPNMITEMACTIVATE类型的。reinterpret_cast (expression)type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指...
分类:
其他好文 时间:
2014-07-16 20:47:42
阅读次数:
1250
一些规则1.c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载。2.除了五个运算符不允许重载外,其他运算符允许重载:.成员访问运算符*成员指针访问运算符::与运算符sizeof尺寸运算符?:条件运算符3.重载运算符必须和用户定义的自定义类型的对象一起使用。(也就是说,参数不能全部都...
分类:
编程语言 时间:
2014-07-09 13:56:27
阅读次数:
286
macro :#define list_entry(ptr,type,member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))功能 从一个结构的成员指针找到其容器的指针原理: ptr是指向type结构体...
分类:
其他好文 时间:
2014-07-06 23:16:44
阅读次数:
318
C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。
刚遇到这种语法时也许会让你止步不前。但你会发现,使用恰当的类型定义之后,复杂的语法是可以...
分类:
编程语言 时间:
2014-06-04 20:52:46
阅读次数:
395
程序猿经常须要实现回调。本文将讨论函数指针的基本原则并说明怎样使用函数指针实现回调。注意这里针对的是普通的函数,不包含全然依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针
回调函数是一个程序猿不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,....
分类:
编程语言 时间:
2014-06-02 00:05:04
阅读次数:
289