将“struct sockaddr_in”传递给方法

时间:2013-06-14 08:28:33

标签: c linux sockets

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

void method(?);

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

void method(?){
....
}

什么代替“?”?

非常感谢!

2 个答案:

答案 0 :(得分:5)

使用指针,如下所示:

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);
}

答案 1 :(得分:1)

按值传递struct在C中完全合法:

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);
}