GCC编译错误:期望的说明符限定符列表

时间:2011-02-04 10:12:51

标签: c gcc

使用gcc

编译此代码时
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>



typedef struct _Nodo
{
    unsigned int id_thread;
    int id_mutex;
    _Nodo *solicita;
    _Nodo *asignado;

}Nodo;

我明白了:

libdrm.c:13: error: expected specifier-qualifier-list before ‘_Nodo’

为什么?

3 个答案:

答案 0 :(得分:9)

尝试:struct _Nodo *solicita

答案 1 :(得分:2)

正如Andrea已经说过,struct _Nodo *solicita都需要asignado,即:

typedef struct _Nodo
{
    unsigned int id_thread;
    int id_mutex;
    struct _Nodo *solicita; // <<<
    struct _Nodo *asignado; // <<<
} Nodo;

答案 2 :(得分:2)

因为你正在做typedef,无论如何,做

typedef struct Nodo Nodo;

struct Nodo {
    unsigned int id_thread;
    int id_mutex;
    Nodo *solicita;
    Nodo *asignado;
};

即一次性声明structtypedef。它们的名称不必相同。然后,您可能已在typedef的声明中使用struct名称。