我现在正在阅读一些c代码。并且对“#define someting”表达式不是很清楚。
例如,我看到了这段代码:
typedef enum cairo_path_op {
CAIRO_PATH_OP_MOVE_TO = 0,
CAIRO_PATH_OP_LINE_TO = 1,
CAIRO_PATH_OP_CURVE_TO = 2,
CAIRO_PATH_OP_CLOSE_PATH = 3
} __attribute__ ((packed)) cairo_path_op_t; /* Don't want 32 bits if we can avoid it. */
#ifndef __GNUC__
#define __attribute__(x)
#endif
我注意“ __属性__(x)”。因为在其他头文件中,“ __属性__(x)”定义为没有值,但它如何在枚举“cairo_path_op”定义中生效?