> If function pointers and data pointers are different
> sizes, a void pointer will be the largest size.
No, as noted above C explicitly requires void* to have the same representation and alignment
as char*. The guarantee that a pointer can be reliably converted to void* and back again
applies only to pointers to object and incomplete types, not pointers to functions.