【发布时间】:2020-12-29 15:19:20
【问题描述】:
我有一个相当笼统的问题:我最近在 C/C++ 代码中看到了许多 #defines,它们被注释为“/*
#define ARRSIZE(x) (sizeof(x)/sizeof(x[0])) /*< macro to determine the size of an array */
我个人只在 cmets 中看到了定义,而在 Google 中的搜索也没有回答我的问题。这有什么意义吗?这只是常见的做法还是来自 Doxygen?还是有其他原因?
【问题讨论】:
-
无关:被诅咒的宏的Use
std::sizeinstead。如果您没有可用的 c++17,请查看第三种可能的实现。你可以很容易地自己解决这个问题。 -
查看 Doxygen 文档:doxygen.nl/manual/docblocks.html#memberdoc?
-
抱歉,我忽略了doxygen 标签。这也应该在问题文本本身中明确说明这是上下文。
-
两件事:1. 是的,std::size 是此代码 sn-p 的一个选项(但无论如何它是一个示例)。我仍然习惯于纯 C 代码:) 2. 我添加了 doxygen 标签,因为我怀疑它可能来自 doxygen 标准。从我的问题文本中可以清楚地看出。