Hva betyr denne feilen: "error: forventet specifier-kvalifiseringskamp-listen før 'TYPE_NAME'"?

stemmer
50

Jeg har jobbet på Cell-prosessoren, og jeg prøver å opprette en struct som vil holde en spe_context_ptr_t, som vil bli brukt i tråden for å lansere en spe sammenheng og vil også holde en peker til noe annet som vil bli overlevert til SPU sammenheng innenfra tråden (for tiden prøver jeg å bare gjøre det en generisk pekeren, men i virkeligheten vil det være en peker til en annen struktur jeg har definert). Når jeg prøver og kompilere, får jeg følgende feilmelding:

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;
Publisert på 03/03/2009 klokken 21:04
kilden bruker
På andre språk...                            


8 svar

stemmer
61

Kompilatoren ikke vet at spe_context_ptr_t er en type. Sjekk at riktig typedef er i omfang når denne koden er kompilert. Du kan ha glemt å ta med den aktuelle tekstfilen.

Svarte 03/03/2009 kl. 21:07
kilden bruker

stemmer
4

Jeg hadde samme feilmelding, men løsningen er annerledes.

Kompilatoren analyserer filen fra topp til bunn.

Kontroller at en struct er definert før du bruker den til en annen:

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

typedef struct
{
    int weight;
} wheel_t;
Svarte 16/12/2009 kl. 15:14
kilden bruker

stemmer
2

For iPhone kakao-touch-prosjekter:

Jeg hadde dette problemet, og takket være Eric Farraro kommentar, var jeg i stand til å få det løst. Jeg ble importerer en klasse WSHelper.h i mange av mine andre klasser. Men jeg ble også importere noen av de samme klassene i min WSHelper.h (rundskriv som Eric sa). Så, for å fikse dette jeg flyttet import fra min WSHelper.h fil til min WSHelper.m fil som de ikke var virkelig nødvendig i .h fil uansett.

Svarte 17/06/2010 kl. 14:56
kilden bruker

stemmer
0

@simpleBob

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

---FILE A.h

@class B;

@interface A{      
}
@end

Koden ovenfor hjalp meg å sortere det ut. Kan noen forklare hva som skjer her?

Svarte 30/03/2012 kl. 13:35
kilden bruker

stemmer
0

Jeg var i stand til å sortere ut dette ved hjelp Gorgando sin løsning, men i stedet for å flytte import borte, kommenterte jeg hver individuelt, bygget appen, og redigert i henhold til jeg ble kvitt dem.

Svarte 28/08/2011 kl. 15:21
kilden bruker

stemmer
0

Jeg fikk den med en import sløyfe:

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

---FILE A.h
#import "B.h"
@interface A{      
}
@end
Svarte 20/08/2010 kl. 10:02
kilden bruker

stemmer
0

Du må navngi struct sånn:

typedef struct car_t {

   char

   wheel_t

} car_t;
Svarte 08/04/2010 kl. 15:53
kilden bruker

stemmer
-1

denne feilen kommer i utgangspunktet når du bruker objektet før du bruker den.

Svarte 14/09/2015 kl. 06:53
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more