static void (* __set_malloc_handler(void (*__f)()))()
void (*func)()这个我懂,但是上面这个__f是干嘛的,上面的函数又该怎么调用?
void (*func)()
__f
拆开一层一层的分析最内部的__f是一个函数指针,其参数为void,返回值为void。__f是一个函数指针,其参数为void,返回值为void。然后__set_malloc_handler比较容易迷惑,首先它是一个函数(一开始说错了,不是指针),其参数为形如__f然后__set_malloc_handler比较容易迷惑,首先它是一个函数(一开始说错了,不是指针),其参数为形如__f的函数指针,其返回值又是个指针,这个指针的类型是void(*)()用法应该是形如下面这样:
__set_malloc_handler
void (*foo)(); void (*bar)(); foo = __set_malloc_handler(bar);
拆开一层一层的分析
最内部的
__f
是一个函数指针,其参数为void,返回值为void。__f
是一个函数指针,其参数为void,返回值为void。然后
__set_malloc_handler
比较容易迷惑,首先它是一个函数(一开始说错了,不是指针),其参数为形如__f
然后__set_malloc_handler
比较容易迷惑,首先它是一个函数(一开始说错了,不是指针),其参数为形如__f
的函数指针,其返回值又是个指针,这个指针的类型是void(*)()用法应该是形如下面这样: