если бы я написал typedef void* func
то было бы то же самое
нет, это указатель на void, а не на функцию, без явного приведения типов присвоить ему адрес функции не получится, так же как нельзя указателю на int (int*) присвоить адрес char.
это указатель на void, а не на функцию, без явного приведения типов присвоить ему адрес функции не получится
devalone, указателю на void можно присвоить значение любого другого указателя, как в C, так и в С++. В С ещё можно и наоборот -- любому указателю можно присвоить значение указателя на void.