из кода ядра LinuxМесто #define в структуре
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;
};
что причина место определяет в тело структуры?
Что не так с этим? Может быть, константы близки к тому, где они используются. – Olaf
Это нормально, я думаю, когда структура имеет только одно поле, которое нуждается в '# define'. Похоже, что определение структуры было бы бесполезным, если бы у вас было полдюжины полей, каждый из которых определял 10. – user3386109