简体   繁体   English

将“ struct sockaddr_in”传递给方法

[英]Passing “struct sockaddr_in” to a method

How can I pass struct sockaddr_in z to a my method? 如何将struct sockaddr_in z传递给我的方法?

void method(?);

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

void method(?){
....
}

What goes in place of "?"? 用什么代替“?”?

Thank you very much! 非常感谢你!

With a pointer, like this: 用一个指针,像这样:

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

Passing a struct by value is perfectly legal in C: 在C中按值传递struct是完全合法的:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM