Не является указателем только адрес? Или мне что-то не хватает?
Я тестировал несколько типов указателей:
- указатели на любые переменные одинаковы (8B на моей платформе)
- указатели на функции имеют тот же размер, что и указатели на переменные (8B)
- указатели на функции с разными параметрами - все те же (8B)
BUT указатели на функции-члены больше - 16B на моей платформе.
Три вещи:
- Почему указатели на функции-члены больше? Какая еще информация нужна им?
- Насколько я знаю, стандарт ничего не говорит о размере указателя кроме, который
void*
должен иметь возможность "содержать" любой тип указателя. Другими словами, любой указатель должен быть отброшен наvoid*
, правильно? Если да, то почемуsizeof( void* )
равно 8, аsizeof
указатель на функцию-член равен 16? - Есть ли еще примеры для указателей, которые имеют разный размер (я имею в виду, для стандартных платформ, а не некоторых редких и специальных)?