gpt4 book ai didi

c++ - C++中函数调用时的编译器错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:49 25 4
gpt4 key购买 nike

我是 C++ 的新手,我通过做题来学习。我正在尝试使用 getopt 来管理我的输入,并且我已经创建了函数来帮助使程序更清晰。这是我正在做的(片段):

void processArgs(int,char *,char **,long int *);

void processArgs(int argc, char ** argv, long int * res)
{
globalArgs.startTerm = NULL;
globalArgs.endTerm = NULL;
globalArgs.outFileName = NULL;
globalArgs.verbosity = 0;
int minimumArgs = 1;

//Check for minimum number of parameters
if (argc<minimumArgs){
displayUsage();
}
}

int main(int argc,char * argv[]){
int * results=NULL;
processArgs(argc,argv,results);
return 0;
}

当我运行以下编译时,我得到:

g++ -std=c++0x fibonacci.cpp -o fibonacci
fibonacci.cpp: In function âint main(int, char**)â:
fibonacci.cpp:68: error: no matching function for call to âprocessArgs(int&, char**&, int*&)â
fibonacci.h:3: note: candidates are: void processArgs(int, char*, char**, long int*)
fibonacci.cpp:46: note: void processArgs(int, char**, long int*)

有人可以帮我理解这个问题吗?我确信这与我对与 argv 相关的指针如何工作的理解减少有关。

谢谢丹

最佳答案

你的函数签名不匹配

void processArgs(int,char *,char **,long int *);

void processArgs(int argc, char ** argv, long int * res)

检查 char *

你可以删除char *来自 void processArgs(int,char *,char **,long int *);或者您可以删除整行。

这里是因为你已经在 main() 上面定义了函数所以不需要使用 void processArgs(int,char *,char **,long int *);在函数之前,因为编译器在编译之前已经获得了函数签名main() .

关于c++ - C++中函数调用时的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com