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