Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
警告:声明'lr_searchReplace';与vuser_init.c(941)中以前的声明不匹配_C_Loadrunner_Vugen - Fatal编程技术网

警告:声明'lr_searchReplace';与vuser_init.c(941)中以前的声明不匹配

警告:声明'lr_searchReplace';与vuser_init.c(941)中以前的声明不匹配,c,loadrunner,vugen,C,Loadrunner,Vugen,我收到以下警告: 警告:“lr_searchReplace”的声明与vuser_init.c(941)中以前的声明不匹配 代码如下:- 注意:我已经声明了char*abc在全局中 vuser_init() { abc = lr_eval_string("{c_Topic1Name}"); lr_searchReplace(abc,"c_newtopic1name",'_','-'); lr_output_message("New string is :- %s",lr_

我收到以下警告:

警告:“lr_searchReplace”的声明与vuser_init.c(941)中以前的声明不匹配

代码如下:- 注意:我已经声明了
char*abc在全局中

vuser_init()
{
    abc = lr_eval_string("{c_Topic1Name}");
    lr_searchReplace(abc,"c_newtopic1name",'_','-');
    lr_output_message("New string  is :- %s",lr_eval_string("{c_newtopic1name}"));
    return(0);
 }

void lr_searchReplace(char* inputStr, char* outputStr, char lookupChar, char repChar)
{
    char *ptr =inputStr;
    char xchar;
    int len=0;
    int i=0;

    lr_output_message("%s",inputStr);
    xchar = *ptr;//Copy initial
    len=strlen(inputStr);
    while (len>0)
    {
        len--;
        xchar = *ptr;
        if(xchar==lookupChar)
        {
            inputStr[i]= repChar;
        }

        ptr++;
        i++;
   }

   lr_save_string(inputStr,outputStr);
   lr_output_message("%s",inputStr);
} 
lr_searchReplace(abc,“c_newtopic1名称”、“uu”和“-”)

void lr_searchReplace(char*inputStr,char*outputStr,char lookupChar,char repChar


您正在向outputstr传递常量指针。

在提供函数声明之前,您可能正在调用
lr\u searchReplace()
。在旧版本的C标准(C89)中,这是允许的,并且函数将被隐式声明为:

int lr_searchReplace();
也就是说,一个函数接受未知数量的非可变参数,并返回
int
。这显然与后面的实际声明相矛盾

在较新版本的标准(C99/C11)中,如果试图调用尚未声明的函数,编译器需要生成诊断消息

您应该更改代码,使函数定义出现在函数调用之前,在函数调用之前提供函数声明。例如:

/* Declaration - Note semi-colon at the end of the declaration */
void lr_searchReplace(char* inputStr, char* outputStr, char lookupChar, char repChar);

/* Function call */
vuser_init()
{
  lr_searchReplace(abc,"c_newtopic1name",'_','-');
}

/* Function definition - including function body */
void lr_searchReplace(char* inputStr, char* outputStr, char lookupChar, char repChar)
{
  ...
}

声明应该在使用之前出现。虽然允许字符串文本驻留在只读内存中,但其类型是
char
数组,而不是
const char