#c #функции
В нижеприведённом коде вторая функция не выполняется, будто бы её там вообще нет. Ума не приложу, в чём дело. Использую Dev-C++ 4.9.9.2. int main() { int a; a=30; printf("%d\n\n",a); system("PAUSE"); return a; } int kek() { int b; b=40; printf("%d\n\n",b); system("PAUSE"); return 0; }
Ответы
Ответ 1
Точкой входа в программу является функция main. Она вызывается при запуске вашей программы. В C функция main без параметров должна быть объявлена как int main( void ) { //... } Из стандарта C (5.1.2.2.1 Program startup): 1 The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters: int main(void) { /* ... */ } Все остальные функции получают управление только лишь, если они вызываются в вашей программе. Если вы используете библиотечные функции, то вы должны включить в программу заголовки, где эти функции объявляются. Ваша программа могла бы выглядеть следующим образом: #include#include int kek(); int main( void ) { int a; a=30; printf("%d\n\n",a); kek(); system("PAUSE"); return a; } int kek() { int b; b=40; printf("%d\n\n",b); system("PAUSE"); return 0; } Ответ 2
Возможно так будет работать так как Вы хотели: int f1(void) { int a; a=30; printf("%d\n\n",a); system("PAUSE"); return a; } int f2(void) { int b; b=40; printf("%d\n\n",b); system("PAUSE"); return 0; } int main(void) { f1(); f2(); } В main вызываем необходимые функции. Порядок выполнения можно также изменить с помощью директивы #pragma startup имя_функции приоритет=64-255 тем самым будут выполняться иные функции в желаемом порядке.
Комментариев нет:
Отправить комментарий