gpt4 book ai didi

c 结构体被传递到函数中

转载 作者:行者123 更新时间:2023-11-30 15:52:41 25 4
gpt4 key购买 nike

我仍在学习 C,并且有一个与我经常看到的问题相关的问题。如果我错了,请纠正我,语句 1 与语句 2 等价吗?

  1. (struct sockaddr *) &echoServAddr
  2. struct sockaddr echoServAddr

如果我理解正确的话,我们会将 &echoServAddr 转换为与 sockaddr 框架相同的结构。

<小时/>

那么下面的代码是按地址传递结构体吗?

/* Bind to the local address */
if (bind(servSock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0) {
perror("bind() failed");
exit(1);
}

最佳答案

假设它们都是函数参数。这些是不同的。第一个是通过引用传递结构。第二个是按原样传递结构 - 复制整个数据。

绑定(bind)接受const struct sockaddr *因为它是第二个参数,所以这是正确的代码。

关于c 结构体被传递到函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com