Почему и как разыменование указателя функции просто "ничего не делает"?
Вот о чем я говорю:
#include<stdio.h>
void hello() { printf("hello"); }
int main(void) {
(*****hello)();
}
Из комментария здесь:
указатели на функцию отлично, но получающаяся функция указатель будет немедленно преобразован обратно в указатель функции
И из ответа здесь:
Разыменование (как вы думаете) Функция указателя означает: доступ к CODE, поскольку это будет ДАННЫЕ память.
Указатель функций не должен быть разыменован таким образом. Вместо этого называется.
Я бы использовал имя "разыменовать" сторону рядом с "вызовом". Это нормально.
В любом случае: C сконструирован таким образом что оба имени имени функции как а также функция переменной удержания указатель означает то же самое: адрес КОД Память. И это позволяет перейти к такому памяти с использованием синтаксиса call() либо по идентификатору или переменной.
Как точно работает разыменование указателя функции?