高手请帮理解C++一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:50:42
void opu(faly *ptr);
main(void)
{
opu(ptr)
}
void opu(faly *put)//为什么不用加分号上面的要
{
return put;
}
这些代码在这里都有什么用呢?请高手详细给我解释下

第一个void opu(faly *ptr);是函数opu的原型说明, 只用来说明函数的返回值和调用参数的类型.写成 void opu(faly *);也可以.
第二个void opu(faly *ptr)才是opu的定义体, 是实质性的内容.

原型说明语句可以省略的, 但是如果省略, 你必须把那个函数的定义体写在调用语句之前. 本程序中就是把 opu()的定义体放到main()之前. 否则编译时可能会出错的(一般void, int类型的函数在要求宽松的C编译器不报错, 其他类型的函数可能报类型不匹配, 因为缺省的函数类型是int).

void opu(faly *ptr);这是函数的定义
main(void)
{
opu(ptr) 这是这个函数的调用
}这是主函数

void opu(faly *put)//为什么不用加分号上面的要
{
return put;
}
这里属于一个函数的定义,为什么要加分号呢?