我正在研究专门为一种嵌入式处理器编写的“C”代码库。我已经为 LED、GPIO 线和 ADC(使用结构等)编写了通用的“伪面向对象”代码。我还编写了大量代码,以与硬件/目标无关的方式利用这些“对象”。
我们现在正在混合使用另一种处理器类型,我想保留当前的代码结构,以便我仍然可以使用更高级别的库。但是,我确实需要为较低级别的代码(LED、GPIO、ADC)提供不同的实现。
我知道 .C 文件中的#includes 通常被看不起,但在这种情况下,它合适吗?例如:
// led.c
#ifdef TARGET_AVR
#include "led_avr.c"
#elseifdef TARGET_PIC
#include "led_pic.c"
#else
#error "Unspecified Target"
#endif
如果这是不合适的,那么更好的实现是什么?
谢谢!