warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

char *背后的含义是:给我个字符串,我要修改它。

而理论上,我们传给函数的字面常量是没法被修改的

所以说,比较和理的办法是把参数类型修改为const char *

这个类型说背后的含义是:给我个字符串,我只要读取它。

如果只读字符串不加 const 则 编译器可以进行赋值操作,这种bug在编译阶段检查不出来,到运行阶段,给一个rodata数据赋值报错!

warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

只读字符串赋值给字符指针,如果字符指针不加const编译器报warning,编译阶段可以利用字符指针进行赋值操作,但是在运行阶段会报错!给只读数据赋值

warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]