“struct packet”没有名为“token”的成员

时间:2021-01-10 21:45:59

标签: c struct compiler-errors compilation

我在这个结构声明中找不到问题。由于某种原因,变量 token 不存在。

packet.h

struct packet
{
    unsigned seq_number;
    char *arg;
    unsigned msg_len;
    unsigned short error;
    unsigned long token;

    enum type
    {
        PING,
        LS,
        WRITE,
        READ,
        APPEND,
        REGISTER,
        DELETE
    } msg_type;
};

struct packet p_init(unsigned seq_number, const char *arg, enum type t);
void attach_token(unsigned long token, struct packet *restrict p);
const void *p_encode(struct packet p);
struct packet p_decode(const void *p);
void p_cleanup(struct packet p);
struct packet p_error(unsigned seq_number, const char *arg, enum type t, unsigned long token);

packet.c

我只包含了第一个函数的实现。

#include "packet.h"
#include <string.h>
#include <stdlib.h>

struct packet p_init(unsigned seq_number, const char *arg, enum type t)
{
    struct packet p = {.seq_number = seq_number, .arg = malloc(strlen(arg) + 1),
                        .msg_len = strlen(arg), .msg_type = t, .error = 0, .token = 0};
    strcpy(p.arg, arg);
    return p;
}

错误日志

这只是第一个错误。有几个与此类似,但在其他功能中。

packet.c:8:77: 错误:‘struct packet’没有名为‘token’的成员

编译

gcc -o master src/master.c  lib/comm.c  lib/packet.c  lib/interface.c  src/fs/fs.c  src/server_table.c src/server/file_exec.c  src/worker_admin.c -DDEBUG -DLOG  -Ilib -lpthread

0 个答案:

没有答案