将结构投射到另一个

用户名

我正在尝试将a强制转换struct为另一个。但是我在编译时总是收到此错误:

要求转换为非标量类型

我收到此行的错误:

p是一个结构前缀,我需要将其强制转换为struct prefix_ipv4

 get_info (type, (struct prefix_ipv4) p);

代码:

ospf_external_info_delete (u_char type, struct prefix_ipv4 p)
{
///////////////
}

struct prefix_ipv4
{
  u_char family;
  u_char prefixlen;
  struct in_addr prefix __attribute__ ((aligned (8)));
}

struct prefix
{
  u_char family;
  u_char prefixlen;
  union 
  {
    u_char prefix;
    struct in_addr prefix4;

    struct in6_addr prefix6;

    struct 
    {
      struct in_addr id;
      struct in_addr adv_router;
    } lp;
    u_char val[8];
  } u __attribute__ ((aligned (8)));
};

谁能说为什么?

尼古拉

您不能转换为其他结构类型。但是,您可以将指针强制转换为不同的结构类型,这是通过具有共同起始字段的结构(您的方式)来广泛完成的。您可以更改函数以使用指针:

void get_info(..., struct prefix_ipv4 *prefix)
...

然后调用它:

get_info(type, (struct prefix_ipv4 *)&p);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个对象投射到另一个对象

如何将一个对象投射到另一个对象中?

是否可以将特征对象投射到另一个特征对象?

是否可以将UWP应用投射到另一个显示器(例如屏幕投射)?

如何检查我们是否可以将一个对象投射到另一个对象

创建一个将一个键映射到另一个键的数据结构

UE4:如何投射到另一个蓝图?

三.js | 是否可以使用 raycaster 将光线从一个物体投射到另一个物体?

如何使用设计模式将一个对象投射到具有相同属性的另一个对象?没有图书馆

如何在Rust中将一个结构映射到另一个结构?

从哈希表中提取一个对象并将其投射到另一个对象

在不克隆的情况下将一个结构数组映射到Rust中的另一个结构数组

将字典结构转换为另一个

使用jQuery将HTML的一个块映射到另一个

将一个值范围映射到另一个值

将一个data.frame映射到另一个

将一个范围映射到另一个范围

将列从一个熊猫DataFrame映射到另一个

将值从一个DataFrame映射到另一个

将一个JSON模式映射到另一个JSON模式

将一个数组的值映射到另一个

将一个数组映射到另一个数组

熊猫,将一个数据框映射到另一个?

如何将一个可观察对象映射到另一个

将一个整数范围映射到另一个整数范围

将值从一个DataFrame映射到另一个

如何将一个对象映射到另一个对象?

Firebase:将子键从一个表映射到另一个表

将一个 json 映射到另一个 json