Funktionspointer in Struktur

Gast #364190
Lesenswert?

Hallo,

wie kann ich einen Funktionspointer in einer Struktur vereinbaren? Wenn
ich folgendes vereinbare
typedef struct
{
  uint16_t period;
  uint8_t  offset;
  void *function(void);
}
OS_TASKS;
bekomme ich folgende Fehlermeldung:
../os.h:37: error: field `function' declared as a function
Das ganze soll auf einem ATMEGA48 laufen.
Sorry für den kurzen Sourcecode im Text.
Gast #364192
Lesenswert?

Hallo Karl Heinz,

danke für den Tipp! Ist das GCC-spezifisch? Bei anderen Compilern
konnte ich bis jetzt die Klammern weglassen. Außerhalb der
Strukturdefinition hat der Compiler nicht gemeckert.
Danke nochmals!
Moderator Persönliche Seite #364195
Lesenswert?

> Das stimmt zwar, aber in der struct von Mattias ist eine Funktion
> ohne Parameter, die void* zurückgibt, deklariert.

In einem C++-Kontext wäre das eine gültige Deklaration (damit wird
dann eine Methode zu dieser Klasse deklariert).  Damit ist es zwar
syntaktisch richtig, aber semantisch natürlich etwas völlig anderes.

In einem C-Kontext ist es selbst syntaktisch falsch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren