C语言的一些关键字(C语言复习一)
没办法,考研复试要考笔试C语言,这里只能简单复习下了,这篇主要是说下关键字auto static extern register
的用法
static
static
主要有如下三个用法
- 在函数内部修饰一个变量
- 在.c文件中限制函数的作用域
- 在数组参数中限制数组的最小长度
函数内部修饰变量
1 |
|
在上述代码执行后,i的输出从1依次递增到10,而j永远都是1
这个用法在c++中也能用,可以用来维护一些全局变量
在.c
文件中限制作用域
1 |
|
这个helperFunction
在其它文件中是不可用的,只有在a.c
中才能使用
这个用法在C++中也能用,把函数可见性限制在编译单元内,但是C++更推荐直接使用
namespace{}
在数组参数中限制最小长度
1 |
|
上述参数中限制了arr
的长度必须大于等于3
auto
现在C语言中的auto
没啥屌用
register
1 |
|
register
是一个编译提示,提示这个变量很常用,让编译器把这个变量丢CPU的寄存器上以提高读写速度,这个优化在现代编译器中是自动完成的,因此也不用管
extern
这个关键字是用来声明全局变量的,也就是访问跨编译单元的变量
1 |
|
如上图,在.h
中用extern
声明,在.c
中定义,然后包含对应的.h
文件就能直接访问了