1

如何传递struct sockaddr_in z给我的方法?

void method(?);

int main(void){
struct sockaddr_in z;
...
}

void method(?){
....
}

什么代替“?”?

非常感谢!

4

2 回答 2

7

使用指针,如下所示:

void method(struct sockaddr_in *z);

int main(void){
    struct sockaddr_in z;
    z.sin_port = 4242;
    method(&z);
}

void method(struct sockaddr_in *z){
    printf("%i\n", z->sin_port);
}
于 2013-06-14T08:30:12.527 回答
2

在 C 中通过值传递 astruct是完全合法的:

void func(struct sockaddr_in z);

int main(void)
{
    struct sockaddr_in z = {0};

    func(z);
}

void func(struct sockaddr_in z)
{
    printf("%d\n", z.sin_port);
}
于 2013-06-14T08:48:57.910 回答