"warning: useless storage class specifier in empty declaration" in struct
typedef struct item {
char *text;
int count;
struct item *next;
};
Also ich habe diese Struktur, bei der die Knoten definiert als oben, aber ich bin immer der Fehler unten und ich bin nicht in der Lage, herauszufinden, was falsch ist.
warning: useless storage class specifier in empty declaration
};
Haben Sie vergessen, ihm einen Namen geben:
Ich dachte, mit typedef in Strukturen arbeiten mit Zeigern war nicht ratsam? Sollte ich verwenden typedef, auch wenn ich keine Verwendung für Sie?
In der Regel werden Sie nicht brauchen, typedefs. Ausblenden von Zeiger hinter einem typedef ist extra verwirrend.
typedef struct item { char *text; int count; struct item *next; } tralalala;
Ich dachte, mit typedef in Strukturen arbeiten mit Zeigern war nicht ratsam? Sollte ich verwenden typedef, auch wenn ich keine Verwendung für Sie?
In der Regel werden Sie nicht brauchen, typedefs. Ausblenden von Zeiger hinter einem typedef ist extra verwirrend.
InformationsquelleAutor spacing | 2016-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, aber versuchen Sie es so :
InformationsquelleAutor Cariamole
Die typedef ist nutzlos, weil Sie nicht geben Sie ihm einen Namen. Sie können nicht mit der typedef in irgendeiner Weise. Das ist, warum Sie eine Abmahnung erhalten, weil Sie die Typdefinition ist nutzlos.
InformationsquelleAutor gnasher729
Struct ist eigentlich noch brauchbar, ohne die Warnung, wenn Sie entfernen die typedef-Schlüsselwort wie diese:
Die Sie gerade brauchen, um das 'struct' - Schlüsselwort in der Variablendeklaration. also
als andere haben darauf hingewiesen, wenn Sie den Namen am Ende der struct-definition dann können Sie es verwenden, wie Sie die Typdefinition und Sie loswerden der Warnung auch ohne das struct Schlüsselwort, aber das macht die erste Instanz von 'Element' überflüssig, d.h.
wird auch loswerden der Warnung.
InformationsquelleAutor codeasaurus
typedef
wird verwendet, um eine Kurznotation für einen bereits vorhandenen Typ in C. Es ist ähnlich wie#define
aber anders ist es,typedef
wird vom compiler interpretiert und bietet mehr erweiterte Funktionen als Präprozessor.Mit seiner einfachsten form
typedef
ist gegeben alsbeispielsweise
Zum Beispiel, wenn Sie verfolgen die definition von
size_t
zurück zu seiner Wurzel, Sie werden sehen, dassdann
bedeutet dies tatsächlich,
size_t
ist ein alias fürunsigned long long
je nach der 64-bit-modal (LP64, ILP64, LLP64) Ihren Rechner hat.Für Ihre Frage, die Sie versuchen zu definieren, eine neue Art, aber nicht dem Namen. Lassen Sie sich nicht die
struct item {..}
definition verwirren, es ist nur eine Art, die Sie deklarieren. Wenn Sie ersetzen die gesamtestruct item {...}
mit einem basic-Typ, sagen, mitint
, und schreiben Sie Ihretypedef
, Sie würden am Ende so etwas wie diesesdie richtige form sein sollte
Siehe die Beispiele unten für die verschiedenen Struktur-Definitionen
InformationsquelleAutor Fehmi Noyan ISI