I have used typedef in my C programs previously many times.
So it is not new to me.
I was reading through a header file
linux-2.6/include/net/iw_handler.h
and found following use of typedef

typedef int (*iw_handler)(struct net_device *dev, struct iw_request_info *info,
                          union iwreq_data *wrqu, char *extra);

I was not able to understand what does above typedef is doing?
Or what is the programmer trying to achieve with typedef definition.