从linux内核代码

struct gpio_desc {
    struct gpio_chip    *chip;
    unsigned long       flags;
/* flag symbols are bit numbers */
#define FLAG_REQUESTED  0
#define FLAG_IS_OUT 1
#define FLAG_EXPORT 2   /* protected by sysfs_lock */
#define FLAG_SYSFS  3   /* exported via /sys/class/gpio/control */
#define FLAG_ACTIVE_LOW 6   /* value has active low */
#define FLAG_OPEN_DRAIN 7   /* Gpio is open drain type */
#define FLAG_OPEN_SOURCE 8  /* Gpio is open source type */
#define FLAG_USED_AS_IRQ 9  /* GPIO is connected to an IRQ */
#define FLAG_IS_HOGGED  11  /* GPIO is hogged */

    /* Connection label */
    const char      *label;
    /* Name of the GPIO */
    const char      *name;
};

将定义放置到结构主体中的原因是什么?

最佳答案

使用#define放在什么位置都没关系(只要它在文件中的位置比第一次使用的位置高)。这些常量很可能仅在该结构中使用,因此按逻辑上的位置放置它们将很容易找到它们。可以将它们放在使用它们的第一个位置之外的任何位置,但是由于类似的目的,它们被组合在一起。

关于c - 在结构中放置#define,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40181651/

10-12 00:07
查看更多