1、函数的定义
包含 函数原型(返回值类型、函数名、形参列表) 和 函数体(大括号一对, 具体代码实现)
形参列表: 形式参数列表。一定包 类型名 形参名。
int add(int a, int b, int c)
{
return a+b+c;
}
(其中 int 为返回值类型, add 为函数名,(int a, int b, int c)为形参列表 )
比如 冒泡排序的 函数定义:
void bubble_sort(int arr[])
{
int i, j, temp;
for (i = 0; i < 10 - 1; i++)
{
for (j = 0; j < 10 - 1 - i; j++)
{
if (arr[j] < arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
再比如打印字符串的函数定义:
void print_arr(int arr[])
{
for (size_t i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
}
2、函数的调用
包含 函数名(实参列表);
int ret = add(10, 4, 28);
实参(实际参数): 在调用是,传参必须严格按照形参填充。(参数的个数、类型、顺序) 没有类型描述符
比如调用冒泡排序和打印字符串的函数:
bubble_sort(arr);
print_arr(arr);
3、函数的声明
包含 函数原型(返回值类型、函数名、形参列表) + “;”
要求 在函数调用之前,编译必须见过函数定义。否则,需要函数声明。
比如冒泡排序和打印字符串的声明:
void bubble_sort(int arr[]); // 函数声明
void print_arr(int arr[]);
(其实 函数声明 的格式就是 函数定义 加一个 ; )