黑马程序员---C语言函数

——— Java培训、Android培训、iOS培训、.Net培训 、期待与您交流! ———
函数的定义
1. 定义函数的目的:添加一个常用的功能,将一个常用的功能封装起来,方便以后调用。
2. 定义函数的步骤:
    1> 根据函数的作用,取一个有意义的函数名称
    2> 确定函数的形参个数
    3> 确定函数的返回值
3. 函数的定义格式:
    返回值类型 函数名(形式参数列表)
    {
     函数题
    }
形参和实参
1. 形式参数:定义函数时函数名后面括号中的参数,简称形参;用于接收外界传递的值
2. 实际参数:调用函数时传入的具体数据,简称实参
3. 实参的个数必须等于形参的个数
4. 函数内部不能定义和形参一样的变量
5. 一个函数可以没有形参,也可以有无限多个形参
6. 如果是基本数据类型作为函数形参,是值传递,修改函数内部形参的值,不会影响实参的值
return的作用
1. 退出函数
2. 返回一个具体值给函数调用者
3. 返回值的注意点:
    1> void代表没有返回值
    2> 如果没有明确说明返回值类型,默认是int类型
    3> 就算明确声明了返回值类型,也可以不返回任何值
函数的使用注意
1. 默认情况下,不允许有函数的名称一样
2. 函数不能嵌套定义
3. 函数不能重复定义,但是可以重复声明
4. 如果只有函数声明,没有函数定义:
    1> 编译可以通过,因为编译器只会检测语法合理不合理,并不检测函数有没有定义
    2> 链接报错,因为链接的时候会检测函数是否定义
5. 函数示例:
void sort(int arr[], int l, int r)     //在main函数之前定义函数
{
	int i = l;
	int j = r;
	int x = arr[i];
	if(l < r)
	{
		while(i < j)
		{
			while((i<j) && (arr[j]>x))
				j--;
			arr[i] = arr[j];
			while((i<j) && (arr[i]<x))
				i++;
			arr[j] = arr[i];
		}
		arr[i] = x;
		sort(arr, l, i-1);
		sort(arr, i+1, r);
	}
}

int main()
{
	int i;
	int arr[] = {18, 2, 15, 29, 12, 60};
	sort(arr, 0, 5);                      //调用sort函数,并传递三个参数
	for(i = 0; i < 6; i++)
		printf("%d ", arr[i]);
	printf("\n");
	return 0;
}
include的作用
1. 拷贝右边所包含的文件的所有内容到#include所在的位置
2. 自定义文件用" ",系统自带的文件用<>
3. #include <stdio.h>的目的是拷贝printf函数的声明
多文件开发
       一个文件的内容太多,不利于阅读、调试。公司大多都是团队合作,多人修改同一个文件容易出问题,因此把函数抽取出来单独放到一个文件中,并且需要注意:
1. 函数的声明放在.h文件,函数的定义放在.c文件
2. 如果要使用某个.c文件中定义的函数,只需要#include这个.c对应的.h文件
3. .h文件的作用是被别人拷贝编译链接的时候不需要考虑.h文件
4. cc xxx.o xxx.o将多个目标文件链接
    cc xxx.c xxx.c将多个源文件编译、链接
5. 链接就是把项目中所有相关联的.o文件、C语言函数库合并在一起,生成可执行文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值