假设Lcd为系统的一个Device,除了系统外还有App类的函数,为了以示区分将总共分为System.和App.
struct System={
struct Device={
struct Lcd={
void (*WriteChar)(char n);
void (*WriteString)(char *str);
};
struct ~~~~//更多的Device
};
struct ·~~~~~~//更多的和系统下的关键组件
void (*fun)();//系统下的函数
};
App.~~~和上面的写法一样,这里就不再赘述;System.是与系统硬件相关的,App.是业务逻辑与硬件无关。
调用时System.Device.Lcd.WriteChar(),System.Device.Lcd.WriteString(),这样的好处在于你可以一眼看出这个函数它是一个与系统相关的设备,能驱动液晶,写个字符或者字符串。当然这种写法就如果系统很小那自然是没有用武之地的,反而显得累赘了很多;但当你的系统比较庞大,设备繁多时,它便能提供一种非常高效的函数调用和管理,而且整个系统也尽收System.的眼底,整体结构也变得清晰起来。 |