Является ли хорошей практикой включать все файлы в один файл .h и включать этот файл везде для AVR? - PullRequest
2 голосов
/ 02 сентября 2011

Могу ли я сделать это

/*includeAll.h*/

#ifndef INCLUDEALL_H_
#define INCLUDEALL_H_ 1

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "DataTypeDefs.h"

#include "timer_api.h"
#include "uart_api.h"
#include "RTC_PCF8563.h" 
#include "TWI_Master.h"
#include "ADC_LTC1859.h"
#include "spi.h"
#include "AT45DB161D_UART_AS_mSPI.h"

#include "Utilities.h"

#ifndef F_CPU 
#define F_CPU 16000000UL
#endif

#include <util/delay.h>


#include <string.h>

#endif /* INCLUDEALL_H_ */

И включить этот файл includeAll.h везде.Везде означает, что во всех файлах проекта.

Подобный макрос, как #define INCLUDEALL_H_ 1, был использован во всех других файлах.

Я вижу, что во время компиляции это занимает очень много времени.

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

Помимо штрафа за время компиляции, это усложняет изменение / портирование / рефакторинг кода.

У меня есть общее правило, согласно которому я держу зависимости на абсолютном минимуме.Чтобы добавить отсутствующий заголовок в нужное место, не требуется много усилий, и это избавит вас от головной боли позже.

1 голос
/ 02 сентября 2011

Вы можете использовать свой includeAll.h как предварительно скомпилированный заголовок .Я бы порекомендовал изменить расширение на .pch.

...