我将一个 main(int argc, char *argv[])
函数重命名为普通子函数,例如 a(int argc, char *argv[]);
并在我的 main()
中调用 a()
函数。
然后,我传递论点。例如。
char *arg[10];
arg[0]="program_name";
arg[1]="-a";
arg[2]="1";
arg[3]="-b";
arg[4]="2";
a (5, arg);
但是a()
返回失败。 a()
在 arg[1]
位置停止解析。
我花了三天时间解决这个问题。有什么想法吗?
最佳答案
该程序有效:
void a(int argc, char *argv[]) {
printf("%d\n", argc);
int i;
for (i = 0; i < argc; ++i) {
printf("%s\n", argv[i]);
}
}
main( ) {
char *arg[10];
arg[0]="program_name";
arg[1]="-a";
arg[2]="1";
arg[3]="-b";
arg[4]="2";
a(5, arg);
}
输出是:
5
program_name
-a
1
-b
2
关于调用函数(argc,argv);在C中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052989/