C programming question

Dan Nelson dnelson at allantgroup.com
Mon Apr 4 11:55:44 PDT 2005


In the last episode (Apr 04), Matt said:
> I need some help understanding some C code. 
> 
> int     (*if_ioctl)
>        (struct ifnet *, int, caddr_t);
> 
> int     (*if_watchdog)
>        (int);
> 
> Can someone break down these declarations (if that's what they are)?  Is 
> this a form of typecasting?  Thanks for your help.

The cdecl command (ports/devel/cutils) is good as decoding stuff like
this.  Those two lines declare variables that are pointers to
functions.

$ cdecl explain "int (*if_ioctl) (struct ifnet *, int, caddr_t)"
declare if_ioctl as pointer to function (pointer to struct ifnet, int, addr_t) returning int
$ cdecl explain "int (*if_watchdog) (int)"
declare if_watchdog as pointer to function (int) returning int

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-hackers mailing list