Два вопроса:
1.Возможно ли подключить .с файл как библиотеку в IAR?
2.При простом подключении .с файла - использующиеся в нем макроопределения можно определить вне его, а в main.c ?
1) Что значит как библиотеку ? можно просто подключить с-файл к проекту. можно скомпилировать его как библиотеку (сделав соответствующий проект) и подключать библиотеку потом к другим проектам в скомпилированном виде. В обоих случаях для с-файла правильно сделать соответствующий h-файл (заголовок), в котором описать внешние интерфейсы модуля (файла или библиотеки).
2) Что такое "простое подключение" ? добавление к проекту или #include ? в обоих случаях можно но не нужно. при добавлении к проекту нужно сделать h-файл и его потом #include и туда и сюда (В сам файл и в main.c). если просто #include "blabla.c" то можно конечно вне файла определить хоть что угодно (#include - это по сути простая подстановка текста, обрабатывается на этапе препроцессирования, до начала какой-либо компиляции).
"как библиотеку" - при компиляции основного проекта будут скомпилированы только используемые функции в этом файле
Ну насчет этого в IAR можно не беспокоиться - линкер оптимизирующий, он выкинет все неиспользуемое на этапе компоновки независимо от структуры исходных текстов. Компилироваться конечно же будет все. В прошивку попадет только то, что используется. Вы сами можете в этом убедиться по MAP-файлу.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.