一、ANSI C关于函数原型的规则
ANSI C在函数声明中同事说明所使用的的参数类型,即在函数原型中声明返回值类型、参数、参数个数、参数类型
int function(int a, int b); // 形式一
int function(int, int); // 形式二
// 以上两种形式的定义均满足规范要求
好处:编译器可以检查函数调用语句是否和其原型声明相一致,如参数个数是否正确,参数类型是否匹配等;如果有参数类型不匹配但都是数值类型,编译器会把实际参数值转换成形式参数类型相同的值
编译器错误和警告的区别:前者阻止编译继续进行,后者不阻止
示例代码:
#include <stdio.h>
int max_cal(int a, int b);
int main(void)
{
int i = 7;
int j = 3;
float m = 7.0;
float n = 3.0;
// max_cal(7, 3)和max_cal(7.0, 3.0)等价
printf("the larger number is %d \n", max_cal(i, j)); // 实参为int类型,与形参类型一致
printf("the larger number is %d \n", max_cal(m, n)); // 实参为float类型,被转换为int类型
return 0;
}
int max_cal(a, b) // 比较,求较大值
{
if(a > b)
{