日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

warning:deprecated conversion from string constant to 'char *' 解决方案

發(fā)布時(shí)間:2025/3/15 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 warning:deprecated conversion from string constant to 'char *' 解决方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#include <iostream>
using namespace std;

int fuc(char *a)
{
? ? cout << a << endl;
}
int main()
{
? ? fuc("hello");
}

Linux?環(huán)境下當(dāng)GCC版本比較高時(shí),編譯代碼可能出現(xiàn)的問(wèn)題

問(wèn)題是這樣產(chǎn)生的,先看這個(gè)函數(shù)原型:

1

void?someFunc(char?*someStr);

再看這個(gè)函數(shù)調(diào)用:

1

someFunc("I'm a string!");

把這兩個(gè)東西組合起來(lái),用最新的g++編譯一下就會(huì)得到標(biāo)題中的警告。

為什么呢?原來(lái)char *背后的含義是:給我個(gè)字符串,我要修改它。

而理論上,我們傳給函數(shù)的字面常量是沒(méi)法被修改的

所以說(shuō),比較和理的辦法是把參數(shù)類(lèi)型修改為const char *。

這個(gè)類(lèi)型說(shuō)背后的含義是:給我個(gè)字符串,我只要讀取它。

?

如何同時(shí)接收const類(lèi)型和非const類(lèi)型?重載

#include <iostream>

using?namespace?std;

?

int?fuc(char?*a)

{

????cout << a << endl;

}

int?fuc(const?char?*a)

{

????cout << a << endl;

}

int?main()

{

????char?a[] =?"hello 123";

????fuc(a);

????const?char?b[] =?"hello 123";

????fuc(b);

}

?

總結(jié)

以上是生活随笔為你收集整理的warning:deprecated conversion from string constant to 'char *' 解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。