如何解决有关从字符串常量到“char*”的已弃用转换的警告
在 4.3 之前的 GCC 版本中,可以使用 char * 声明变量输入,然后为其分配一个字符串文字。然而,GCC 4.3 及更高版本不赞成这种做法并发出警告。正确的方法是将变量声明为 const char *,但如果您有一个很大的代码库并且不想一次修复所有实例,有一种方法可以抑制警告。
要抑制这些警告,请将传递字符串文字的任何函数的类型从 char * 更改为 const char *。无论如何,这是正确的方法,所以如果您要修复某些问题,请正确修复它。
这种弃用的原因是字符串文字是 const char * 类型,并且抛弃了const 来修改它们是未定义的行为。要修改字符串,您需要将 const char * 字符串逐个字符复制到动态分配的 char * 字符串中。
以下是如何正确执行此操作的示例:
#include <iostream> void print(char* ch); void print(const char* ch) { std::cout << ch; } int main() { print("Hello"); return 0; }
以上是如何处理 GCC 从字符串常量到'char*”的弃用转换警告?的详细内容。更多信息请关注PHP中文网其他相关文章!