定位结构的奇怪行为

时间:2017-02-17 11:31:38

标签: c++ struct

我在外国软件中找到了一个很好的 struct

*struct YINIT yInit = 
{
  "bla", "miao", 1, 0, (uint16_t[])
    {
     SWAPINT(0x200)
    }
};*

我不检查这个,我之前没见过。 你能帮忙理解这个吗?

我的问题是,编译器发出警告消息: 已弃用从字符串常量转换为'char '*

但是没有理解我无法帮助我的编译器...

1 个答案:

答案 0 :(得分:1)

这声明并初始化类型为struct YINIT的变量。你没有显示结构的定义,但错误很明显。

结构体具有类型char*的成员,并且这些成员使用字符串文字进行初始化。在C ++ 11之前,这种转换仅仅被弃用,因此警告。由于C ++ 11这种转换格式不正确,编译器可能会选择不接受它。

解决方案:将成员类型更改为const char*,或者不要将其初始化为指向字符串文字。