[关闭]
@yiltoncent 2015-03-16T23:01:07.000000Z 字数 1022 阅读 4373

存储类、链接和内存管理

C语言基础



CH12 存储类、链接和内存管理

作用域(scope)

传统上,具有代码块作用域的变量都必须在代码块的开始处进行声明。C99放宽了这以规则,允许在一个代码块的任何位置声明变量。你一定见过类似这样的代码:

  1. for(int i=0; i<10; i++)
  2. printf("A C99 feature: i = %d\n",i);

在一些古老的IDE或者编译器上,这样的代码可能编译不通过,主要原因可能就是它不支持C99的新特性。


链接(linkage)

  1. int giants=5; // 文件作用域,外部链接
  2. static int dodgers=3; // 文件作用域,内部链接

存储时期(storage duartion)


总结

C使用作用域、链接和存储时期来定义五种存储类:

存储类 时期 作用域 链接 声明方式
自动 自动 代码块 代码块内
寄存器 自动 代码块 代码块内,使用关键字static
具有外部链接的静态 静态 文件 外部 所有函数之外
具有内部链接的静态 静态 文件 内部 所有函数之外,使用关键字static
空连接的静态 静态 代码块 代码块内,使用关键字static
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注