I suspect you&#x27;re talking about &quot;pointer to member&quot;, which doesn&#x27;t exist in C; it is a C++ concept. This is not a pointer, but a kind of indirection mechanism dressed up in pointer syntax.<p>I&#x27;ve never seen C++ code which depended on the internals of pointers-to-member, or assumed they had the same size as other kinds of pointers.<p>A pointer to member is actually a complicated offset into an <i>offset</i> into some structure associated with an object&#x27;s class. This offset can be &quot;dereferenced&quot; with respect to objects of different types in the same hierarchy, taking into account multiple inheritance and virtual bases, etc. A pointer to a Base::Foo function, can be applied against a Derived object, such that it resolves to the correct code, even though Base is the third base of Derived, and so Foo is in a totally different vtable position in Derived compared to Foo. (The pointer cannot be a blind integer offset.)<p>In C, we would make a struct containing function pointers, and a simple &quot;pointer to member&quot; would just be an integer &quot;offsetof(our_struct_type, some_function)&quot;. Then worry about it later if someone wanted multiple inheritance. :)