# 02 лекция ```c= #include <stdio.h> int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); return 0; } int sum(int a, int b) { return a + b; } ``` ```c= #include <stdio.h> int sum(int, int); int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); return 0; } int sum(int x, int y) { return x + y; } ``` ```c= #include <stdio.h> int sum(int, int); int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); return 0; } int sum(int b, int a) { printf("a=%d, b=%d\n", a, b); return a + b; } ``` **Как можно написать реализацию функции в другом файле?** :::warning > [color=#B22222] sum.c ```с int sum(int a, int b) // можно релизовать в этом файле { return a + b; } ``` > [color=#32CD32] main.c ```с #include <stdio.h> int sum(int a, int b); // если обьявить int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); // можно использовать return 0; } ``` ::: **Когда есть прототип, функция может быть реализованная не только после, но и в другом файле** ИЛИ :::success > [color=#B22222] sum.c ```c int sum(int a, int b) // можно релизовать в этом файле { return a + b; } ``` > [color=#4682B4] sum.h ``` int sum(int a, int b); // можно обьявить в этом файле ``` > [color=#32CD32] main.c ```c #include <stdio.h> #include "sum.h" // можно подключить заголовочный файл // "" пишится вместо <> тогда, когда у вас подключаемый файл находится в текущей рабочей папке int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); // можно использовать return 0; } ``` :::success При компиляции `#include <>` подключаемый файл сначала ищется в стандартных каталогах, а потом в текущей рабочей папке При компиляции `#include ""` подключаемый файл ищется только в текущем рабочем каталоге *текущая рабочая папка, в данном случае, откуда запустили компилятор ::: >текущая рабочая папка в остальных случаях (в других контекстах, например при открытие файла) - место откуда запустили ваш `.exe` (исполяемый файл, `.exe` - это расширение исполняемых файлов под `windows`) --- ОШИБКА КОМПИЛЯЦИИ (если бы они были в разных файлах - ошибка линковки) ```c= #include <stdio.h> int sum(int x , int y); float sum(int n , int m); int main(void) { int a=3, b=5; printf("a+b=%d\n", sum(a, b)); return 0; } int sum(int x, int y) { return x + y; } int sum(int n, int m) { return n + m; } ```