Funktionszeiger - 2 Optionen

8

Ich frage mich, was ist der Unterschied zwischen diesen 2 Funktionen ( fun und fun2 ) Ich weiß, dass fun2 ist Funktionszeiger, aber was mit fun ? Ist das dasselbe, weil es auch einen Zeiger gibt, der ein Funktionsname ist?

%Vor%     
Handsomeguy123 12.11.2015, 16:15
quelle

1 Antwort

5
  

Ist das das Gleiche, weil es auch einen Zeiger gibt, der ein Funktionsname ist?

Ja. Dies ist von C geerbt. Es ist nur für die Bequemlichkeit. Sowohl fun als auch fun2 nehmen einen Zeiger vom Typ "void ()" auf.

Diese Bequemlichkeit darf vorhanden sein, denn wenn Sie die Funktion mit Klammern aufrufen, gibt es KEINE AMBIGUITÄT. Sie müssen eine Funktion aufrufen, wenn Sie eine Argumentliste in Klammern haben.

Wenn Sie Compilerfehler deaktivieren, funktioniert der folgende Code auch:

%Vor%

Zypern

Why verwendet den Funktionsnamen als Funktionszeiger, der dem Anwenden des Operators address-of auf den Funktionsnamen entspricht?

    
Toby Liu 12.11.2015, 17:02
quelle

Tags und Links