在C中重新分配结构

我是C的新手,正在尝试使用结构。 在我创建了一个结构后,是否可以用大括号重新分配它?

typedef struct { int height; int age; } Person; int main (void) { Person bill = {100,35}; bill = {120,34}; // error: expected expression before '{' token bill = Person {120,34}; // error: expected expression before 'Person' return 0; } 

不是直接的,但C99有复合文字

 bill = (Person){120,34}; 

你甚至可以通过使用指定的初始化程序来做更可读的事情

 bill = (Person){ .height = 120, .age = 34, };