static与extern 的作用、typedef关键字

const就是只读的意思,只在声明中使用。其值不可修改。可以修饰常亮 修饰变量的时候 他是只读变量

Static 一般两个作用,规定作用域和存储方式。对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话。此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.

Static const是二者的结合, 即是只读的 又是在当前文件(模块)内可见的。

Extern在文件.cpp中定义 用来声明的是告诉编译器有这个东西然后拿来用,定义只能出现一次,声明却可以出现多次,也就是说extern声明可在多个文件中用。

Typedef 并不创建新的类型,他仅仅为现有类型添加一个同义字。行为有点像#define宏,用其实际类型替代同义字,不用点是typedef在编译时被解释。typedef 就像 auto,extern,mutable,static,和 register 一样,是一个存储类关键字。

这并不是说typedef会真正影响对象的存储特性;它只是说在语句构成上,typedef 声明看起来象 static,extern 等类型的变量声明。

内存中存储细节、全局变量与局部变量

堆区 通过alloc init 创建出的对象 一般有程序员自己管理内存

栈区 局部变量

数据区 字符常量和静态static变量

代码区 代码的存放

原文地址:https://www.cnblogs.com/wangxiaoqi/p/6594072.html