从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/