Was bedeutet dieser Fehler: „Fehler: erwartet Spezifizierer-Qualifizierer-Liste vor‚type_name‘“?

StackOverflow https://stackoverflow.com/questions/608175

  •  03-07-2019
  •  | 
  •  

Frage

Ich habe auf dem Cell-Prozessor arbeitet und ich versuche, eine Struktur zu schaffen, die eine spe_context_ptr_t halten wird, die im Thread verwendet wird, um einen spe Kontext zu starten und wird auch einen Zeiger auf etwas anderes, das wird halten zum spu Kontext aus dem Thread übergeben werden (zur Zeit versuche ich es ein generischer Zeiger nur zu machen, aber es wird ein Zeiger auf eine andere Struktur I definiert haben in Wirklichkeit). Wenn ich versuche, und kompilieren, erhalte ich folgende Fehlermeldung:

spu/../common.h:38: error: expected specifier-qualifier-list before 'spe_context_ptr_t'

// here is the offending line(s)

typedef struct _PTHREAD_BLOCK {
    spe_context_ptr_t * context; // Error happens here
    uintptr32_t  args; 
 } PTHREAD_BLOCK;
War es hilfreich?

Lösung

Der Compiler nicht, dass spe_context_ptr_t nicht wissen, ist ein Typ. Überprüfen Sie, ob die entsprechende typedef in Rahmen ist, wenn dieser Code kompiliert wird. Sie haben vielleicht vergessen, um die entsprechende Header-Datei enthalten.

Andere Tipps

Ich hatte die gleiche Fehlermeldung, aber die Lösung ist anders.

Der Compiler analysiert die Datei von oben nach unten.

Stellen Sie sicher, eine Struktur, bevor Sie ihn in ein anderes definiert ist:

typedef struct
{
    char name[50];
    wheel_t wheels[4]; //wrong, wheel_t is not defined yet
} car_t;

typedef struct
{
    int weight;
} wheel_t;

Für iPhone Kakao-Touch-Projekte:

Ich hatte dieses Problem und dank Eric Farraro Kommentar konnte ich es gelöst werden. Ich war eine Klasse WSHelper.h in vielen meiner anderen Klassen zu importieren. Aber ich war auch in meinem WSHelper.h einige dieser gleichen Klassen importieren (circular wie Eric gesagt). Also, um dieses Problem beheben zog ich die Importe aus meiner WSHelper.h Datei zu meiner WSHelper.m Datei, da sie nicht wirklich sowieso in der H-Datei benötigt werden.

Ich habe es mit einer Import-Schleife:

---FILE B.h
#import "A.h"
@interface B{
  A *a;
}
@end

---FILE A.h
#import "B.h"
@interface A{      
}
@end

Sie haben Ihre Struktur so nennen:

typedef struct car_t {

   char

   wheel_t

} car_t;

Ich war in der Lage, dies zu klären, Gorgando die fix verwenden, sondern stattdessen die Einfuhren weg zu bewegen, bemerkte ich jeweils einzeln aus, baute die App dann entsprechend bearbeitet, bis ich sie losgeworden.

@simpleBob

---FILE B.h
#import "A.h"
@interface B{
  A *a;
}
@end

---FILE A.h

@class B;

@interface A{      
}
@end

Code oben hat mir geholfen, es in Ordnung bringen. Könnte jemand erklären, was hier los ist?

Dieser Fehler im Grunde kommt, wenn Sie das Objekt verwenden, bevor Sie es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top