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文件就能直接访问了