【发布时间】:2020-10-09 01:58:30
【问题描述】:
如下面的代码,无法传递这个参数,如何解决?
E0167 “const char *”类型参数与“char *”类型参数不兼容
代码示例:
#include <iostream>
using namespace std;
int PrintString(char* s)
{
cout << s << endl;
}
int main(int argc, char* argv[])
{
PrintString("TESTEEEE");
return 0;
}
我已经尝试过PrintString(L"TESTEEEE");
我也尝试设置 Project -> Properties -> General -> Character Set 选项以使用多字节字符集。
【问题讨论】:
-
正如它所说,“TESTSEEE”是一个 const char *。将
int PrintString(char* s)更改为int PrintString(const char* s)。 -
我已经尝试过 PrintString(L"TESTEEEE"); 对于你想要的宽字符文字
int PrintString(const wchar_t* s) -
要么更改函数 proto,要么将参数 const_cast 为 char *。请记住,修改文字是 UB。
-
为什么不能编辑函数使其第一个参数
const wchar_t* s? -
这能回答你的问题吗? Difference between char* and const char*?