所以我有我的主函数,还有另外两个函数,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
}
并返回您想要进行的操作的任何类型的结果。