There are two types of definition directives in C:
#define OBJECT_LIKE_MACRO followed by a "replacement list" of preprocessor tokens
#define FUNCTION_LIKE_MACRO(with, arguments) followed by a replacement list
, , #define: lparen, , - . lparen? N1570 A 3:
(6.10) lparen:
& ; a (,
, C, ( //, ). . , , , , (? , , :
#define NULL (void*)0
. :
#define HA_FIELD_INFO (st, fname, dtype) \
{#fname, dtype, HA_FIELD_SIZE(st, fname), HA_FIELD_OFFSET(st, fname)}
( HA_FIELD_INFO " ", , . :
#define HA_FIELD_INFO(st, fname, dtype) \
{#fname, dtype, HA_FIELD_SIZE(st, fname), HA_FIELD_OFFSET(st, fname)}
user824425