OB_LINK_GET_PRIVATE(link)->name可以正常获取到到name的值,但是OB_LINK(link)->priv->name就不可以,其中priv为空指针
时间: 2024-03-29 11:36:54 浏览: 45
这是因为在定义 `struct` 的时候,没有为 `priv` 成员分配内存空间。因此,当你使用 `OB_LINK(link)->priv->name` 时会出现空指针异常。而 `OB_LINK_GET_PRIVATE(link)->name` 则是通过 GObject 库中提供的宏定义来获取私有成员的值,它会自动为 `priv` 成员分配内存空间并将其返回,因此不会出现空指针异常。如果你想要使用 `OB_LINK(link)->priv->name` 来获取私有成员的值,你需要在定义 `struct` 的时候为 `priv` 成员分配内存空间,或者在初始化 `link` 对象时手动为 `priv` 成员分配内存空间。
阅读全文