例子1:
#include<iostream.h>
#include<stdio.h>
int sqr(int);  //函数原型
void main()
{int t=10;
int s=sqr(t);
cout<<"t="<<t<<endl<<"sqr(t)="<<s<<endl;
}
int sqr(int x)
{x=x*x;
return x;
}例子二:
#include<stdio.h>
#include<iostream.h>
int sum(int a,int b) //函数原型
{if(a>b) return a;
else return b;
}
void main()
{int c,d;
cin>>c>>d;
cout<<sum(c,d);
}请告诉我在这2个代码中的函数原型有什么不同吗,为什么一个有“;”一个没有

解决方案 »

  1.   

    第二个例子所谓“函数原型”已经是直接进行函数声明和定义了,原型和函数定义并没有分开来。
    当子函数定义在主函数即main()之后的时候,就要像例子1那样进行函数原型的声明,否则主函数里
    就不能使用子函数。
    而例子2的子函数定义在主函数前,这等同于函数原型的声明。
    函数定义不需要分号,而原型定义需要。
      

  2.   

    晕啊!
    例1是先声明,最后定义,声明是为了编译不出错!
    例2是直接定义,放在main前,这样不会出错,如果放在main后面编译出错!
      

  3.   

    有;号的是声明
    没有;的是实现
    一般在.h文件中声明
    在.cpp文件中写出函数的实现