如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)不在同一文件中,或者函数定义的位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。

    所谓函数声明,就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译能正常进行。

    注意:一个函数只能被定义一次,但可以声明多次。

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int max(int x, int y); // 函数的声明,分号不能省略
    4. // int max(int, int); // 另一种方式
    5. int main()
    6. {
    7. int a = 10, b = 25, num_max = 0;
    8. num_max = max(a, b); // 函数的调用
    9. printf("num_max = %d\n", num_max); // num_max = 25
    10. system("pause");
    11. return 0;
    12. }
    13. // 函数的定义
    14. int max(int x, int y)
    15. {
    16. return x > y ? x : y;
    17. }

    函数定义和声明的区别:
    1)定义是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。
    2)声明的作用则是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。