C ++隐式转换字符串为char

时间:2019-01-18 10:21:38

标签: c++

我得到了以下代码

文件 c_header.h

#ifdef __cplusplus
 extern "C" {
#endif
void Do_Some_String_Operation(const char* const pString);

#ifdef __cplusplus
 }
#endif

此代码包含在cpp文件中。

文件 cpp_file.cpp

#include "c_header.h"
void main()
{
    Do_Some_String_Operation("my_nice_string");
}

这里的问题是,默认情况下将参数视为字符串。由于该函数仅使用一个char *,因此编译器会警告我有关隐式转换字符串=> char。

我如何告诉编译器将参数视为char *。我尝试过

Do_Some_String_Operation(static_cast<char*>("my_nice_string"));

但这并没有使警告消失。 :(

1 个答案:

答案 0 :(得分:3)

您的代码格式正确,可以正确编译。


作为旁注,您可能希望删除函数 declaration 中的顶级const

void Do_Some_String_Operation(const char* pString);

顶层const是函数的实现细节,不应泄漏到其接口中。您可以在功能定义中添加const