将 main 的 *argv[] 传递给另一个函数正在调用的函数?
Pass main's *argv[] to a function that is being called by another function?
所以我有我的主要功能,以及 2 个其他功能,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("%s\n", argv[2]);
}
运行 gcc -Wall main.c -o main && ./main f -win
你得到了
输出:-win
到控制台。您不应该在 argv
内操作数据,更安全的做法是将 func2
更改为:
char *func2(char **argv)
{
// Return some value after receiving argv
}
和 return 无论您的结果是您想要执行的操作的类型。
所以我有我的主要功能,以及 2 个其他功能,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("%s\n", argv[2]);
}
运行 gcc -Wall main.c -o main && ./main f -win
你得到了
输出:-win
到控制台。您不应该在 argv
内操作数据,更安全的做法是将 func2
更改为:
char *func2(char **argv)
{
// Return some value after receiving argv
}
和 return 无论您的结果是您想要执行的操作的类型。