//举例说明#includeint max(int *a, int m, int n);//这行就是函数原型,函数定义在主函数后面。 //函数原型的就是实现函数先(main中调用), //后(定义在后面)。int main(int argc, char *argc[]){ int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; printf("max=%d\n", max(&a[0][0], 3, 4)); return 0;} int max(int *a, int m, int n){ int ma = a[0], i, j; for (i = 0; i < m; i++) for (j = 0; j < n; j++) { if (ma < a[i * n + j]) { ma = a[i * n + j]; } } return ma;}
一个函数,可能在别处被引用,或是在本文件中被引用。其中在本文件中被引用时,规范的函数书写格式是先写main函数,然后在main函数下方写被调用的函数,即先引用而后面才有函数定义。此时编译器需要先行知道这个函数返回值类型和参数类型,才可以正确地帮着做严格的数据类型和参数个数的检查 (如不提前声明就会当做是返回int型,参数都当int型且不能检查参数个数),这个函数在定义之前被提前声明了一下函数形式,就是所谓的函数原型了,函数原型中,变量名是可以省略的。
或者说:
函数原型就是函数本身定义的形式。
函数的格式为:return_type func_name(arg_list);所以函数的原型,就是根据函数名查找到的声明或者定义的形式,通过原型可以确认函数的返回值类型(return_type),以及需要多少个参数,每个参数的类型是什么(arg_list)。这样才能够确定,如何调用函数才是正确的。