如何使用Doxygen为依赖预处理器定义的typedef同时展示两种类型文档
解决方案
实现思路
利用Doxygen默认可识别的DOXYGEN专属预定义宏,额外添加仅Doxygen处理时可见的双版本typedef声明,原始编译逻辑完全保留不做改动,同时不影响IDE的语法检测与补全功能。
修改后的代码示例
/** * \file */ // 仅Doxygen生成文档时生效的双版本声明,不会参与实际编译 #ifdef DOXYGEN /** * Windows平台下的字符类型,仅在定义`_WIN32`宏的编译环境下生效 */ typedef wchar_t MyChar; /** * 非Windows平台下的字符类型,未定义`_WIN32`宏的编译环境下默认生效 */ typedef char MyChar; #endif // 原始条件编译逻辑完全保留,编译结果与修改前一致 #ifdef _WIN32 typedef wchar_t MyChar; #else typedef char MyChar; #endif
Doxygen配置调整
打开你的Doxyfile配置文件,修改以下参数:
ENABLE_PREPROCESSING = YES开启预处理器解析MACRO_EXPANSION = YES开启宏展开功能PREDEFINED += DOXYGEN=1预定义DOXYGEN宏,让专属声明块被Doxygen识别SKIP_FUNCTION_MACROS = NO避免跳过宏相关内容的解析
效果验证
生成HTML文档后,即可在对应文件的typedef列表中同时看到两种MyChar的定义,分别匹配各自的文档说明,完全符合预期输出要求。
内容的提问来源于stack exchange,提问作者fabian
相关产品推荐
相关产品推荐

