Funktionsaufruf mit unterschiedlicher Semantik

Betrachtet man diesen Code mit 3 verschiedenen Funktionsaufrufsemantiken:

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

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

  return 0;
}

Die erste ist die Standardmethode, um f aufzurufen,

Die zweite ist die Semantik für die Dereferenzierung von Funktionszeigern.

aber im dritten wende ich den & -Operator auf den Funktionsnamen an und es scheint gut zu funktionieren.

Was passiert im zweiten und dritten Fall?

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage