2014-08-29 3 views
-1

У меня есть функция в foo.c, которые recevies переменных аргументов из консолиPass Переменных Аргументов от одной функции к другой функции

foo.c

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

///do something 
} 

нужно вызвать другую функцию функции 2, который находится в bar.c и в другом каталоге и нужно передать те же переменные аргументы, как и в функции 1.

bar.c

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

} 

Как мне вызвать Function2 из Function1, передавая все аргументы переменной, полученные с консоли?

Пожалуйста, не голосуйте, поскольку я новичок в этих понятиях.

Заранее спасибо

+0

Использование в * FUNCTION1 *, * function2 (argc, argv); * что вы получаете? –

+0

Есть только 2 аргумента: 'argc' и' argv'. Вы должны пройти два из них. –

+0

Этот ответ может быть полезным для вас: http://stackoverflow.com/a/7882823/3421814 –

ответ

0

Запуск программы из консоли всегда дает вам 2 переменные:

  • ARGC: количество аргументов, консольных и
  • ARGV: массив строки, в которых хранятся все аргументы консоли.

Как сказано в комментарии, вам просто нужно назвать эти два аргумента из function1:

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

Не забудьте включить оба ваших исходных кодов при компиляции:

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