The C standard allows pointers to different types to have different sizes, e.g. sizeof(char*) != sizeof(int*) is permitted. It does, however, require that if a
One could easily imagine a Harvard architecture machine having different sizes for function pointers and all other pointers. Don't know of an example...