【问题标题】:Pass Variable Arguments From One Function To Other Function将变量参数从一个函数传递到另一个函数
【发布时间】:2014-10-23 08:46:47
【问题描述】:

我在 foo.c 中有一个从控制台接收变量参数的函数

foo.c

void Function1 (SINT32 argc, char*argv[]) 
{

///do something
}

我需要调用一个不同的函数 function 2,它位于 bar.c 和不同的目录中,并且需要传递与 Function 1 中相同的变量参数。

bar.c

void Function2 (SINT32 argc, char *argv[])
{
// Do Something.

}

如何从 Function1 调用 Function2 并传递从控制台接收到的所有变量参数?

请不要投反对票,因为我是这些概念的新手。

提前致谢

【问题讨论】:

  • function1中使用,function2(argc, argv);你得到了什么?
  • 只有 2 个参数:argcargv。你应该通过他们两个。
  • 这个答案可能对你有帮助:stackoverflow.com/a/7882823/3421814
  • 在 function1 中使用 function2(Argc,argv) 我得到对函数 2 的未定义引用。如果我尝试添加它抱怨的头文件:非法使用聚合模块***。
  • 您是否在foo.c 文件中插入了#include "bar.h",其中有函数Function2声明

标签: c


【解决方案1】:

从控制台启动程序总是为您提供 2 个变量:

  • argc :控制台参数的数量,以及
  • argv : 存储所有控制台参数的字符串数组

正如 cmets 中所说,您只需要从 function1 调用这两个 args :

#include "bar.h"
void Function1 (SINT32 argc, char**argv[]) 
{
    Function2(argc, argv);
}

编译时不要忘记包含两个源代码:

gcc <opts> foo.c bar.c -o baz

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多