Статические функции в Си - C (СИ)
Формулировка задачи:
Читаю Кернигана и Ричи, и походу возник вопрос о статических функциях
Есть 2 файла main.c:
и файл global.h
По идеи область видимости funct должна ограничиваться файлом, но программа компилируется и выводит правильный результат, почему?
#include <iostream> #include "global.h" int main(int argc, char *argv[]) { int x = 5, y = 6, z; z = funct(x, y); std::cout << z; return 0; }
static int funct(int x, int y) { int s; s = x - y; return s; }
Решение задачи: «Статические функции в Си»
textual
Листинг программы
// file foobar.h int DoBigJob(); // file foobar.c static int DoPart1() { ... } static int DoPart2() { ... } static int DoPart3() { ... } int DoBigJob() { return DoPart1() + DoPart2() + DoPart3(); } // file main.c #include "foobar.h" int main() { return DoBigJob(); }
Объяснение кода листинга программы
- В файле foobar.h объявлена функция DoBigJob().
- В файле foobar.c определены три статические функции DoPart1(), DoPart2(), DoPart3().
- В функции DoBigJob() происходит вызов функций DoPart1(), DoPart2(), DoPart3() и возвращается их сумма.
- В файле main.c присутствует функция main(), в которой происходит возврат функции DoBigJob().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д