2010-07-12 2 views
1

Я новичок в программировании на С ++.Как передавать данные во многие функции

Теперь у меня есть программа, которая состоит из миллионов строк кода в тысячах файлов. Но когда я увидел основную() (командную строку), она была очень маленькой. Теперь, как передавать данные на столько миллионов функций из такого небольшого main()? Не было текстового файла для разбора или массива структуры, который содержит указатель на функцию и текстовую строку и т. Д.

+0

Дубликат http://stackoverflow.com/questions/2944902/calling-functions-from-main-in-c-closed, отправленный одним и тем же пользователем, и закрытый. – 2010-07-12 08:32:05

ответ

3

Предположим, у меня есть функция длиной в пятьдесят тысяч строк, называемая foo(). Теперь предположим, что я пишу функцию main, которая является одной строкой длиной, и просто вызывает foo(). У меня все еще есть пятьдесят тысяч строк кода, но main крошечный.

Или, допустим, у меня есть пятьдесят тысяч двухстрочных функций. Каждый из них состоит из вызовов двум другим. Если main называет один из них, возможно, что все из них будут вызваны в какой-то момент. Это более ста тысяч строк кода с пятьюдесятью тысячами функций и . функций длиннее двух строк.

Размер main ничего не значит.

+4

+1 за то, что размер 'main' ничего не значит. Даже большинство девушек говорят, что размер не имеет значения! – ereOn

+0

Насколько я знаю, два случая не применяются в реальном программировании. У меня есть библиотека GUI и приложение от него, которое содержит более миллиона функций. Теперь, как я могу передать данные многим из них? Программа работает без ошибок компилятора. – Supriyo

1

Во-первых, в хорошо продуманной программе есть много небольших функций. Каждая из функций делает небольшую вещь, и пусть какая-то другая функция выполняет настоящую работу.

Во-вторых, если параметр представляет собой структуру или массив, он может содержать много данных. Небольшое количество параметров не всегда указывает на то, что передано мало данных.

Например, ваша основная функция() может выглядеть следующим образом:

int main(int argc, char ** argv) { 
    options programOptions; 
    work result; 

    programOptions = parseOptions(argv); 
    result = doTheWork(programOptions); 
    printResult(result); 
} 

Трудно сказать больше без какого-либо кода или, например, что делает ваша программа.

Смежные вопросы