关于enum声明的变量被其他文件(.h或.c)引用到时,由于头文件包含顺序引起的error的处理办法:
根据整个系统架构划分出应用层(APP),中间层(RTE),服务层(service)以及底层等层次,对于某一模块(如按键模块)包含Switch_APP、Switch_RTE、Switch_SERV以及IO底层,通常对于每个层中都有各自文件和callback文件(.h和.c)及cfg文件(.h和.c),除此之外对应于整个模块(按键模块)还有一个typedef头文件(.h)
,其中typedef文件在此处很重要,它的作用是存放enum声明的变量,且这个enum变量被上述多个层(大于等于2个)中用到,这样在整个系统的头文件包含顺序时,按照先包含typedef头文件,然后再依次包含APP头文件、RTE头文件及SERV头文件和驱动层头文件即可,遵循以上所述顺序,可有效防止头文件引用顺序在编译时报出的error问题;