вызов функции в другой функции в C - PullRequest
1 голос
/ 12 октября 2010

Мне было интересно, как я могу вызвать функцию в другой функции на C. Например, я создал функцию:

void speed (int argc, char** argv)

из гипертерминала, я набираю 1 или 2 и получаю что-то написанноена гипертерминале.В другой функции с именем:

void menu (int argc, char ** argv)

Я хочу вызвать предыдущую функцию: speed(...).Я не знаю, что заполнить для ....

спасибо Джим

Ответы [ 2 ]

4 голосов
/ 12 октября 2010
void menu (int argc, char ** argv)
{
   speed(argc, argv); // this is how you call a function
}

Чтобы это работало, либо скорость должна быть определена выше меню, либо объявление ее должно быть перед ней или в заголовке. Декларация скорости выглядит как

void speed (int argc, char ** argv);
1 голос
/ 12 октября 2010

То, о чем говорил Франко, называется прототипами функций . C анализирует (или компилирует) ваш код сверху вниз, поэтому, если он отвечает на ваш вызов speed , прежде чем он достигнет вашего объявления speed , он жалуется. Чтобы обойти это, вам нужно создать прототип функции в качестве прямой ссылки на функцию. Как правило, рекомендуется писать прототипы для всех ваших функций в верхней части кода или в другом файле (он же файл header ) и #include it.

/* helloworld.h */
void speed (int , char **);
void menu (int , char **);



/* helloworld.c */
#include "helloworld.h"
void menu (int argc, char **argv){
   speed (argc, argc);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...