0
#include <stdio.h>
#include "prique.h"

void main()
{
    _pqueue *test;
    queue_init(&test);
    ...

我不知道为什么我会收到这个错误。

错误:在 '{' 标记 | 之前应为 '='、','、';'、'asm' 或 ' attribute '

头文件中的结构是

typedef struct _pqueue
{
    int size;
    struct queue_node *first;
}_pqueue;

我已经正确定义了结构。我看到一些讨论说这个错误与范围有关,但不知道如何修复它。

4

3 回答 3

0

你必须知道你也可以编译你的 *.h 文件。做这个:

gcc -Wall prique.h

确保您的头文件声明都是正确的。

于 2012-12-24T10:38:32.317 回答
0

不确定这是否是问题所在,但某些编译器无法识别 void main(),因此:

int main()

否则它可能是你的 prique.h 模块中的东西......

此外,如果您的 queue_node 以相同的方式定义(typedef struct queue_node {...} queue_node),那么您可能不需要 struct 关键字:

typedef struct _pqueue
{
    int size;
    queue_node *first;
} _pqueue;
于 2012-12-24T10:16:28.967 回答
0

我猜这queue_nodepqueue. 如果是这种情况,那么这应该可以解决问题。如果不是,则queue_node可能未在您的包含文件中定义。

下面的代码可能是您想要的。

typedef struct pqueue {
    int size;
    struct pqueue *first;
} pqueue_t;

void
main()
{
    pqueue_t *test;

}
于 2012-12-26T01:43:47.963 回答