之前的预期表达

时间:2016-10-21 06:42:58

标签: c

这个错误是什么意思? error: expected expression before 'Addr'

typedef struct sockaddr_in Addr;

int main() {
    WSADATA Winsock;
    SOCKET Socket, Sub;

    ZeroMemory(&Addr, sizeof(Addr)); // Error occurs here
    return 0;
}

我添加了一条评论错误发生在。

2 个答案:

答案 0 :(得分:2)

这样的事情可以解决你的错误:

typedef struct sockaddr_in Addr;

int main() {
    WSADATA Winsock;
    SOCKET Socket, Sub;
    Addr addr;

    ZeroMemory(&addr, sizeof(Addr));
    return 0;
}

解释here

答案 1 :(得分:2)

你实际上并没有创建一个你可以调用函数的变量,你只是typedef一种适合你需要的变量。实际上,您需要声明该结构类型的变量才能使其正常工作。

像这样:

typedef struct sockaddr_in Addr; // Defining what a variable (struct) of type Addr is

int main() {
    WSADATA Winsock;
    SOCKET Socket, Sub;
    Addr testAddr; // Actually declaring a variable of type Addr

    ZeroMemory(&testAddr, sizeof(Addr));
    return 0;
}