Как я могу удалить голову основной функции? - PullRequest
3 голосов
/ 29 марта 2010

Я пытаюсь переместить некоторый код из отдельного двоичного файла и поместить его в основную программу. К сожалению, я не могу имитировать переменные инициализации для основной функции.

Как я могу создать argc и argv вручную? Может кто-нибудь дать мне несколько примеров заданий.

так как это выглядит так:

int main(int argc, char *argv[])

Я подумал, что могу назначить их так:

int argc=1;
char *argv[0]="Example";

Но это не работает. Кто-нибудь может сказать мне, как это можно сделать?

Ответы [ 3 ]

6 голосов
/ 29 марта 2010
int argc = 3;
char *argv[4];
argv[0] = "fake /path/to/my/program";
argv[1] = "fake arg 1";
argv[2] = "fake arg 2";
argv[3] = NULL;
fakemain(argc, argv);
1 голос
/ 29 марта 2010

Последний элемент массива argv[] на самом деле argv[argc], который является указателем NULL.

Пример кода:

char *argv[] = { "first", "second", NULL }; 
int argc = sizeof(argv) / sizeof(*argv) - 1;
0 голосов
/ 03 октября 2013

Зачем тебе это делать? Если вы используете IDE, то у нее будет возможность добавить опцию командной строки. Если вы вызываете программу напрямую, просто вызовите ее с помощью параметров команды

...