将所有文件包含在一个.h文件中并将该文件包含在AVR的各处都是一个好习惯吗?

时间:2011-09-02 15:09:43

标签: c embedded avr-gcc

我可以这样做吗

/*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 个答案:

答案 0 :(得分:2)

除了编译时惩罚之外,这样做会使代码的更改/移植/重构变得更加困难。

我有一般规则,我将依赖关系保持在绝对最小值。在正确的位置包含丢失的标题并不需要太多工作,并且以后会为您节省很多麻烦。

答案 1 :(得分:1)

您可以将includeAll.h用作precompiled header。我建议将扩展名更改为.pch