Вопрос был о простой c функции, а не С++ static
методы, как выяснено в комментариях.
Хорошо, я понимаю, что такое переменная static
, но что такое функция static
?
И почему это так, что если я объявляю функцию, скажем void print_matrix
, пусть говорит a.c
(БЕЗ a.h
) и включает "a.c"
- я получаю "[email protected]@....) already defined in a.obj"
, НО если я объявляю это как static void print_matrix
, тогда он компилируется?
ОБНОВЛЕНИЕ Просто для того, чтобы прояснить ситуацию - я знаю, что включение .c
является плохим, как многие из вас указали. Я просто делаю это, чтобы временно освободить место в main.c
, пока у меня не будет лучшего представления о том, как сгруппировать все эти функции в правильные файлы .h
и .c
. Просто временное, быстрое решение.