#define与结构化指针的成员

时间:2013-04-23 15:01:24

标签: c macros

我的结构如下:

struct spidev_data {
  int busy;
  int irq;
};

我只是想通过一个定义来访问一个成员(比如spidev-> busy),所以我试试这个:

#define BUSY spidev->busy

但它不起作用......

有人可以告诉我该怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

你应该试试这个

spidev_data *spidev = /* ... new or malloc ... */;

BUSY = 1;

但更优雅的是

#define BUSY(X) (X)->busy

...

BUSY(spidev) = 1;

因为它不是专门用于对象的。