关于定义函数的一些问题

今天刚学习定义函数,定义int max(int a,int b)这个函数时里的a和b必须在main函数里定义吗?还是可以用新的数字表示?比如我main函数里没定义a和b但是我在定义函数是用了a和b可以吗?
这个int max后面的a和b这个形参是不是只是一个符号?代表等会main函数里要比较的两个数啊?
定义函数时前面有时用void是什么意思啊?
感谢回答!

定义函数时前面有时用void,void 表示空,定义函数时用 void ,表示函数没有返回值。
定义int max(int a,int b)函数时,这里的 a b是形参,它的作用域仅在max()函数体内。
同样的,int main(){int a,b; max(a,b);} 在主函数里定义的 a b ,它的作用域仅在主函数体内.
下面代码,帮助理解,供参考:

#include <stdio.h>
int max(int a,int b)//定义函数形参 a b, 它们的作用域在函数体内
{                   //这个函数有返回值,所以定义 int max() 。
    if (a > b)
        return a;
    else
        return b;
}
int main()
{
    int a = 2, b = 6;
    printf("max(a,b):%d\n", max(a,b));//调用 max()函数,这里a b是实参
                                      //这里可以看出,形参和实参可以同名,
                                      //但相互不受影响。
    int c = 5, d = 3;
    printf("max(c,d):%d\n", max(c,d));//调用 max()函数,这里c d是实参

    return 0;
}

img