头文件中语言数据类型声明的struct变量。通常数据类型用于声明变量,但其他数据类型传递给预处理器。我们什么时候应该使用一个数据类型发送到预处理器来声明变量?为什么数据类型和变量发送到处理器?
#define DECLARE_REFERENCE(type, name) \
union { type name; int64_t name##_; }
typedef struct _STRING
{
int32_t flags;
int32_t length;
DECLARE_REFERENCE(char*, identifier);
DECLARE_REFERENCE(uint8_t*, string);
DECLARE_REFERENCE(uint8_t*, mask);
DECLARE_REFERENCE(MATCH*, matches_list_head);
DECLARE_REFERENCE(MATCH*, matches_list_tail);
REGEXP re;
} STRING;