Так что я хочу зафиксировать грех включения исходных файлов в исходные файлы.Включая исходный файл
По существу я создаю универсальный файл main.c, он станет базой для любого проекта, который я создаю на этой платформе.
Проект для проекции единственной реальной разницы в моем файле main.c находится в самой главной функции.
Что я хочу сделать, это создать другой файл projectloop.c и включить этот файл вместо основной функции. Имея это поведение как вставка текста.
//main.c:
#include "main.h"
...// includes
...// standard functions
int main(void) {
...// standard configuration
#include "projectloop.c"
}
Однако я не уверен, что могу поместить в файл projectloop.c, чтобы его можно было скомпилировать.
Я хотел бы, чтобы это было так просто, как
//projectloop.c:
while(1) {
// do my project loop
ledOn();
delay();
ledOff();
delay();
}
Это не будет строить, хотя.
Я получаю сообщение об ошибке в первой строке projectloop.c «Ожидаемая декларация».
У меня есть два вопроса.
- Могу ли я сделать прямое вложение текста с помощью способа, которым я пытаюсь это сделать?
- Есть ли веская причина не структурировать мой код таким образом?
Я не работал с #include исходными файлами напрямую, у меня создалось впечатление, что он просто заменит оператор #include содержимым файла.
Обновление: ранее не упоминалось, что я пытался сделать это в среде Eclipse.
Когда я использовал команду «build» Eclipse, файл projectloop.c строился на своем собственном.
неЩелчок правой кнопкой мыши на projectloop.c в проекте исследователя Eclipse, я был в состоянии выбрать «Исключить из Строить»
Ну, если компилятор по-прежнему пытается построить projectloop.c как автономный блок компиляции, возможно, он не работает на работу. – tux3
Если вы не защищаете его от двойного включения. Но тогда результат будет зависеть от порядка компиляции. –
Если вы включили projectloop.c в main(), то не компилируйте projectloop.c как отдельный файл. Есть ли какая-то причина, по которой вы не можете просто вызвать главный вызов, например функцию mainLoop(); 'и определить эту функцию где-то еще? – JS1