doxygen变量被识别为函数

时间:2013-11-13 08:56:09

标签: c doxygen 8051 sdcc

在我目前的项目中,我正在尝试使用doxygen生成文档。但是我有一个变量的问题。不知怎的,doxygen将变量识别为函数。

代码:

__xdata __at (0x0F00) volatile static unsigned char Programmed; /*!< an indicator if     the board is programmed or not, during init copied from flash to xram*/

/*! 
*   The main loop that does all the magic
*   besides the "compiler startup" _sdcc_external_startup (in HWInit.c) is called to handle some "urgent" init (disabling of the watchdog)
*/
void main(void){
    unsigned short int TempUSInt;
    //init the device.
    Init_Device();

注意代码:代码是为8051微控制器的SDCC compiler编写的。 __xdata __at ()指令是一个特殊指令,因此编译器知道它必须将数据放在预定位置(地址0x0F00)的单独存储器段(称为XDATA)中。

我的探测器是doxygen将__at()识别为函数而不是变量,从而覆盖main()函数。

虽然有办法让doxygen忽略__xdata __at () char Programmed语句,但这样做的缺点是变量被忽略,因此没有记录。

那么是否有人知道如何让doxygen将__xdata __at () char Programmed识别为变量而不是函数?

1 个答案:

答案 0 :(得分:2)

我的策略是使用doxygen宏隐藏(定义为空)来自doxygen的编译器魔法(未经测试;玩转):

PREDEFINED = __xdata= \
             __at()=

您还可以查看EXPAND_AS_DEFINED的文档。

PS:你的操作系统是否真的允许void - 返回主?如果没有,您应该使用int main(void)