вызов функции с различной семантикой

Рассматривая этот код с тремя различными семантиками вызова функций:

void f(void){
   puts("OK");
}

int main(void){
   f();
  (*f)();
  (&f)();

  return 0;
}

Первый — это стандартный способ вызова f,

второй — семантика для разыменования указателей функций ,

, но в третьем я применяю оператор & к имени функции, и, похоже, он работает нормально.

Что происходит во втором и третьем случае?

Спасибо.

6
задан abc 24 June 2012 в 17:39
поделиться