将文本字符串作为常量字符 * 参数传递会导致代码分析器错误



>我有重载函数

int put_message(int level, int sys_log_level, const char * inp_message);
int put_message(int level, int sys_log_level, const std::string &inp_message);

并调用此函数

put_message(0, LOG_ERR, "clock_gettime error");

代码被编译并工作但 Eclipse CDT 代码分析器说

无效参数 ' 候选人是: int put_message(int, int, const char *( int put_message(int, int, const ? &( '

如何修复此错误?

更新:将LOG_ERR修改为 int(LOG_ERR( 错误消失后。我没有在标题中添加。添加可以解决问题。

您缺少与字符串类相关的#include <string>或内容

您需要将字符串转换为正确的类型,编译器将"某个字符串"视为 char[],因此您需要将其转换为 const char*

尝试使用

put_message(0, LOG_ERR, (const char*)"clock_gettime error");

最新更新