调用函数(argc,argv);在C中

标签 c program-entry-point argv

我将一个 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/

相关文章:

通过 openssl 函数使用 sha1withRsa 检查文件是否正确

c - 从调试程序向 gdb 发送命令

iphone - 加载 main.m 中的错误时应用程序崩溃

C++ 类未在范围内声明 - 从 main 调用

sql - 在 Mac/Windows/Linux 上使用 GNU C 库和其他数据结构库。?

c - Linux共享对象编译问题

java - 如何使用小程序运行(伪)main 方法?

c - C 中 argv 的确切内存大小

c++ - 对此 argv 的使用感到困惑

C++ _findfirst 和 TCHAR