我的應用程序是用C寫我有一個從某給全球結構使用了一些數據的模塊。我現在必須將模塊擴展爲可選地針對不同的給定全局結構,它基本上提供了相同的字段(就我的模塊而言),但使用不同的名稱。封裝獲得類似的結構
這裏的汽車來比喻,希望能夠使我的問題更加清晰。我有這兩個我無法控制的全局結構。
struct {
unsigned char manufacturer_id;
unsigned short top_speed;
} Car;
struct {
RGB_t color;
unsigned short topSpeed;
unsigned char mfr;
} Automobile;
比方說,我的汽車管理器模塊使用來自汽車的信息。例如,
const char *car_manager__get_manufacturer_name(car_manager_t *self)
{
return self->manufacturers[Automobile.mfr];
}
我想延長汽車經理任選的(也許是在car_manager_t實例的標誌決定)從汽車使用相同的信息,所以上述函數將返回self->manufacturers[Car.manufacturer_id]
。我不想在添加此功能時複製模塊中的任何邏輯。
我想我得把接口的訪問全局結構。有關如何做到這一點的任何建議?
你能更具體嗎? – nmichaels