- 论坛徽章:
- 0
|
本帖最后由 cenalulu 于 2012-08-29 16:13 编辑
struct ilink
{
struct ilink **prev,*next;
static void *operator new(size_t size) throw ()
{
return (void*)my_malloc((uint)size, MYF(MY_WME | MY_FAE | ME_FATALERROR));
}
static void operator delete(void* ptr_arg, size_t size)
{
my_free(ptr_arg);
}
inline ilink()
{
prev=0; next=0;
}
inline void unlink()
{
/* Extra tests because element doesn't have to be linked */
if (prev) *prev= next;
if (next) next->prev=prev;
prev=0 ; next=0;
}
virtual ~ilink() { unlink(); } /*lint -e1740 */
};
上面源代码中,Prev怎么是指针的指针,在unlink中是怎么操作的?
if (prev) *prev= next;
if (next) next->prev=prev; 看着好乱啊。 |
|