struct的field分隔符

struct在声明的时候,field之间不能逗号分隔,但是在初始化的时候又需要。这种不一致的语法设计的动机是什么?