[英]Doxygen warning when using a macro inside an anonymous struct
我有一个结构,按照惯例,我需要使用某个宏才能声明该类型的变量:
结构:
struct basic_struct {
int a;
int b;
};
宏:
#define BASIC_VAR(var_name) struct basic_struct var_name
在匿名结构中使用此宏时,我遇到了Doxygen的问题,如下所示:
struct {
BASIC_VAR(var_1);
int var_2;
} my_struct;
我收到Doxygen警告:
warning: no uniquely matching class member found for BASIC_VAR(var_1)
什么时候:
1)删除宏
struct {
struct basic_struct var_1;
int var_2;
} my_struct;
2)不使用匿名结构
struct my_struct_t {
BASIC_VAR(var_1);
int var_2;
} my_struct;
我没有警告。 但是我必须使用宏,并且我更喜欢继续使用匿名结构,可以使用任何Doxygen命令来避免此警告?
我相信您需要在Doxyfile中将MACRO_EXPANSION
设置为YES
,以便Doxygen扩展您的宏。 参见http://www.doxygen.nl/manual/preprocessing.html
此外,您可能需要将宏添加到PREDEFINED标记中。
我使用的解决方法是编辑Doxyfile:
1)确保将MACRO_EXPANSION标记设置为YES
2)在PREDEFINED标记中,在宏后面加上=运算符,不带空格,在我的情况下:BASIC_VAR(var_1)=
由于某些原因,将MACRO_EXPANSION标记设置为YES并将EXPAND_ONLY_PREDEF设置为NO无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.