黑马程序员__C语言__函数__static和extern

 

static 和 extern

外部函数:定义的函数能被本文件和其他文件访问

内部函数:定义的函数只能被本文件访问,其他文件不能访问

默认情况下,所有函数都是外部函数。

完整的定义一个外部函数:

extem viod test()    //extern是可以省略的,默认都是省略的

{
printf("调用了test函数 ")
}

完整的声明一个外部函数:

extem viod test();    //可以省略extern, 默认情况下都是外部函数

定义一个内部函数:

static viod test2()
{
printf("调用了test2")
}

内部函数不能直接被其他文件访问,只能间接被访问

不允许有同名的外部函数,内部函数的名字一样在每个文件里面是不冲突的

static对函数的作用:

1.定义一个内部函数

2.声明内部函数
extern对函数的作用:

1.完整的定义一个外部函数

2.完整的声明一个外部函数

static和extern对变量的作用 :定义和声明一个内部和外部变量

外部变量:定义的变量能被本文件和其他文件访问
内部变量:定义的变量只能本本文件访问,不能被其他文件访问


默认情况下,所有的全局变量都是外部变量
不同文件中的同名外部变量都代表着同一个变量,可以重复定义

 

 

函数

任何一个C语言程序都是由一个或者多个程序段构成的,每个程序段都有自己的功能,我们一般称这些程序段为函数,所以,你可以说C语言程序是由函数构成的。


函数的定义


1.定义函数的目的
将一个常用的功能封装起来,方便以后调用

2.定义函数的步骤

函数名:函数叫什么名字
函数体:函数是干什么用的,里面包含了什么代码

3.格式

固定格式(很多语言的函数都是这么写的)

返回值类型 函数名(形式参数列表)

{
函数体

}

举例

定义一个函数,计算两个整数的和

sum(int a, int b)
{
int c =a+b;

}

形参和实参

形参:定义函数的时候要定义的变量,形参可以有无数个,在函数体不能定义和形参一样的变量

实参:在调用函数的时候传入函数的实际参数,实参必须要和形参一一对应

注意

如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参 的值

一个函数可以没有形参,也可以有无限多个参数


定义一个内部变量:

static int b; // 和定义一个内部函数的形式差不多

不同文件中的同名内部变量,互不影响

原文地址:https://www.cnblogs.com/jia694600474/p/3997038.html