【问题标题】:argument of type "u16_t *" is incompatible with parameter of type "u16_t [2]*" - uIP library“u16_t *”类型的参数与“u16_t [2]*”类型的参数不兼容 - uIP 库
【发布时间】:2014-06-23 06:06:46
【问题描述】:

我正在尝试使用标准库 uIP 启动 TCP/IP 连接。此代码直接取自手册,其中显示了如何打开到特定 IP 地址的新连接(在本例中是我的 Windows localhost 机器)。

u16_t ipaddr[2];
uip_ipaddr(ipaddr, 127,0,0,1);
uip_connect(ipaddr, HTONS(51719));

但我收到以下错误:

argument of type "u16_t *" is incompatible with parameter of type "u16_t [2]*"

显示在最后一行(uip_connect() 函数)。我究竟做错了什么?这实际上是 uIP 参考手册的剪切和粘贴。

【问题讨论】:

    标签: c windows tcp ip micro-ip


    【解决方案1】:

    函数uip_connect() 需要uip_ipaddr_t* 类型作为其第一个参数。

    uip_ipaddr_t 的类型定义来自 uint16_t[2]。你必须传递你的数组的地址才能得到uip_ipaddr_t*

    【讨论】:

    • 谢谢!那成功了。我只是对他们为什么在手册中这样写感到困惑。
    【解决方案2】:

    请注意,一个是二维数组u16_t [2]*,而另一个是一维数组u16_t *。它们显然不兼容。

    【讨论】:

    • 但这正是他们在手册中的编码方式。即使我将其定义为u16_t ipaddr,我仍然会得到同样的错误。
    猜你喜欢
    • 2018-09-07
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2012-11-06
    • 2019-07-11
    相关资源
    最近更新 更多