问题 Is this declaration C99/C11 compliant ? typedef struct element { char *data; struct element* next; } element, *list, elements[5]; I could not find why it works in the standard. 回答1: Yes, it is standard compliant. typedef declarations are like normal declarations except the identifiers declared by them become type aliases for the type of object the identifier would be if the declaration had no typedef in it. So while int integer, *pointer_to_integer; declare an int object named integer and an