0

假设以下一段C代码:

  #define SOME_MACRO(m)  \
  void (*f)(m);          \
  unsigned int a;        \
  int *self;

然后是一个结构

typedef struct _Str {
   SOME_MACRO(whatever)
   char sthg[2];
} STR;

我的问题是:这种设计选择的目的是什么?例如,我们并不是在间接节省时间。除了尝试模块化代码之外,还有什么其他的_STR吗?

4

3 回答 3

3

我的项目使用该模式来确保某些方法/成员在每个项目类中都可用(例如,用于编组)。再次没有更多的例子,没有办法证实,但这是我的理论。

于 2012-05-26T16:33:40.757 回答
0

SOME_MACRO(m) 转换为指向函数的函数指针,该函数不返回任何内容,该函数接受一个类型的参数m,以及一个无符号整数和一个指向整数的指针。我相信这样的事情背后的设计原因是高度特定于案例的,并且没有更详细的代码示例,我相信这用于模块化代码,正如你提到的那样。

于 2012-05-26T16:31:27.590 回答
-1

只是从您给出的代码中,我也无法做出解释,但它似乎有些简单,所以我认为这只是一个新程序员的测试宏,因为“SOME_MACRO”的含义=一些宏测试代码。 ..

于 2012-05-26T16:39:11.927 回答