function pointer declaration in c typedef