如果是main先运行的话,中间的butler();不是还没有说明吗?
因为在main函数上面已经对butler()函数进行声明了(相当于创建了一个索引或者标识),所以在main()函数中调用butler()函数的时候,编译器会自动去搜索butler()函数的实现。
函数在被调用之前,只要声明了就可以直接调用,具体的实现放在后面的任何位置都没有影响,只要能让编译器找到就可以。
在本例中,就是现在main()函数前声明了函数butler(),然后在main函数中调用,butler()函数的实现放在了最后面。
说明是什么,指声明吗?
函数的使用包括声明,定义和调用。
只要函数被定义,声明在调用之前,函数就可以运行。
像你的这个代码,第3行是函数声明,12-15行是定义,第7行是调用。
要么函数声明不写在任何函数里(即像这个代码一样写在外部),要么写在调用函数(这里是main函数)内,调用语句的上面