static和extern的作用分为对函数的作用和对变量的作用。
一, 对函数的作用:
static:1,完整的定义一个内部函数。2,完整的声明一个内部函数。
在一个函数的返回值前面加一个static修饰的时候,该函数是一个内部函数。内部函数只能被本文件调用,不同的文件中可以有同名的内部函数存在。
extern:1,完整的定义一个外部函数。2,完整的声明一个内部函数。
在一个函数的返回值前面加一个extern修饰,该函数就是一个外部函数,外部函数可以被本文件调用,也可以被其他文件调用,默认所有的函数都是外部函数,一般情况下,外部函数的extern可以省略不写。不同的文件中不能有同名的外部函数存在。
二,对变量的作用:
变量分为全局变量和局部变量。
全局变量又分为两种变量:1,外部变量,能够被本文件和其他文件访问,默认情况下所有的全局变量都是外部变量,不同文件中的同名外部变量代表一个变量。2,内部变量,只能被本文件访问的变量是内部变量,不同文件中允许有同名的内部变量存在。
static对全局变量的作用,定义一个内部变量。
static对于局部变量的作用,延长了局部变量的生命周期,在程序结束的时候,局部变量才会被销毁,变量的作用域并不会被改变。
extern对全局变量的作用,声明一个外部变量。
另外在补充一点关于scanf(),getchar(),gets()的用法,区别。
scanf()不仅可以用来读取字符,还可以读取字符串,在读取的时候以Space 、Tab 、Enter结束,不会舍弃最后的回车键。
getchar()只能用来读取字符,以Enter结束读取,不会舍弃最后的回车键。
gets()只能用来读取字符串,接受Space(也就是Space不会结束输入),Enter结束输入,会舍弃最后的回车键。
本文详细解释了static和extern关键字在C/C++中的作用,包括它们如何应用于函数和变量,并介绍了这些关键字的不同用法以及对变量生命周期的影响。此外,还对比了scanf(), getchar(), 和 gets() 的使用场景和区别。

1173

被折叠的 条评论
为什么被折叠?



