我正在寻找一种在我继承的共享库中记录以下enum / typedef设计的好方法。有许多以下模式的实例:
enum {
VAL1,
VAL2,
VAL3
};
typedef u_int16_t val_t;
int16_t myfunc(val_t foo);
这显然会导致Doxygen的链路生成出现问题。
不幸的是,我无法将其更改为正确的typedef enum { ... } val_t;
结构,因为此库在许多不同的嵌入式系统上运行,范围从本机16位到64位。根据C标准,enum保证足够大以容纳int。因此,将这些更改为正确的typedef会将其大小从sizeof(u_int16_t)
(2个字节)提升到sizeof(int)
(通常为4个字节,但并非总是如此)。存储大小差异导致混乱;永远不要重建所有相关软件所需的协调释放噩梦。
鉴于上述情况,是否有任何好的方法在枚举前面的注释块中标记下面实际上是typedef的别名?
如果做不到这一点,我正在寻找一种简洁的解决方案,允许我从任意函数签名中找到这些值。我可以将枚举命名为任意内容(例如val_enum_t
),因此我考虑了@see
提及以及使用#
前缀的直接链接。在这两种情况下,都会生成另一层链接。
我理想的解决方案包括以下内容:
//!<
的枚举的内联文档。