求问为什么第9、10行已经用void定义了output和print两个空类型函数,又在后面29,34行再次定义这两个函数呢?

图片说明

这是翁恺老师结构体一章的一个示例,求问为什么第9、10行已经用void定义了output和print两个空类型函数,又在后面29,34行再次定义这两个函数呢?这样有什么用处?

前两两行是申明(declaration),下面才是定义(definition),申明只是告诉编译器有这个函数存在,以便调用它的时候,有这么一个符号。

这个不是空的函数。空函数是没有内容的函数,比如
void output(struct point) { }
这是空函数。