c语言 - 将main的*argv[]传递给另一个函数正在调用的函数?



所以我有我的主函数,还有另外两个函数,func1和func2。main从用户那里获取参数,并将它们传递给func1。fun1检查了一些内容,然后想要将参数发送到func2。

我该怎么做?

int main( int argc, char *argv[] )  {
if( argc == 3 ){
func1(argv);
}
void func1(char **argv){
if(strcmp(argv[2], "-win"))
func2(argv);
}
void func2(char ***argv){ //is this the right way?
......
}

我的意思是,我知道func1正在接收参数,因为当我尝试它而不将它们发送到func2时,它起作用了。但我正试图弄清楚如何将它们从func1发送到func2。

查看文件main.c:中的此代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void func1(char **argv);
void func2(char **argv);
int main(int argc, char *argv[])
{
// you are need to pass 2 things to run this
if (argc == 3)
{
func1(argv);
}
return 0;
}
void func1(char **argv)
{
if (strcmp(argv[2], "-win")==0)
func2(argv);
}
void func2(char **argv)
{
printf("%sn", argv[2]);
}

运行gcc -Wall main.c -o main && ./main f -win,您将获得输出:-win到控制台。您不应该在argv中操作数据,只需将func2更改为:是更安全的选择

char *func2(char **argv)
{
// Return some value after receiving argv
}

并返回您想要进行的操作的任何类型的结果。

最新更新