Why exactly it is invalid to convert a function pointer to a pointer to void, or vice versa?

Viewed 63

Rationale for C, Revision 5.10, April-2003:

Even with an explicit cast, it is invalid to convert a function pointer to an object pointer or a pointer to void, or vice versa.

Why exactly it is invalid to convert a function pointer to a pointer to void, or vice versa?

What are the conceptual / technical obstacles to allow such conversion?

Reason: better understanding of the standard.

UPD. FYI: In POSIX dlsym returns valid object opened by dlopen() as void*. Then such void* object is usually converted to a function pointer (which is invalid per C) and called. More details: link.

0 Answers
Related