Array von Funktionszeigern in C

7

Mir fällt es wirklich schwer, die Syntax für Funktionszeiger zu verstehen. Was ich versuche, ist, ein Array von Funktionszeigern zu haben, das keine Argumente annimmt und einen ungültigen Zeiger zurückgibt. Kann mir jemand helfen?

    
yasar 12.03.2012, 18:30
quelle

5 Antworten

16
  1. Zunächst sollten Sie etwas über cdecl erfahren:

    %Vor%
  2. Sie können es von Hand machen - bauen Sie es einfach von innen auf:

    a

    ist ein Array:

    a[10]

    von Zeigern:

    *a[10]

    zu Funktionen:

    (*a[10])

    ohne Argumente:

    (*a[10])(void)

    gibt void * zurück:

    void *(*a[10])(void)

  3. Es ist viel besser, wenn Sie typedef verwenden, um Ihr Leben einfacher zu machen:

    %Vor%

    Und dann mach dein Array:

    %Vor%
Carl Norum 12.03.2012, 18:33
quelle
7

Immer wenn die zusammengesetzte Syntax zu kompliziert wird, hebt ein typedef normalerweise die Dinge auf.

z. B.

%Vor%

Was ohne den typedef ich denke würde aussehen:

%Vor%     
Tommy 12.03.2012 18:34
quelle
2

Verwenden Sie typedef s

%Vor%     
Jens Gustedt 12.03.2012 18:33
quelle
2

Beginnen Sie mit dem Array-Namen und arbeiten Sie sich heraus, wobei Sie daran denken, dass [] und () bind vor * ( *a[] ist ein Array von Pointer, (*a)[] ist ein Pointer auf ein Array,% co_de) % ist eine Funktion, die einen Zeiger zurückgibt, *f() ist ein Zeiger auf eine Funktion):

%Vor%     
John Bode 12.03.2012 18:58
quelle
0

Sehen Sie sich Ссылка für Beispiele und Erklärungen von Arrays von C- und C ++ - Funktionszeigern an.

    
Christian Horsdal 12.03.2012 18:35
quelle

Tags und Links