簡體   English   中英

將文字字符串作為const char *參數傳遞會導致代碼分析器錯誤

[英]passing literal string as const char * parameter causes code analyzer error

我有重載的功能

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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM