1、基本数据类型及所占空间(操作系统Ubuntu,编译环境gcc)
1)、int : sizeof(int)=4
2)、char : sizeof(char)=1
3)、float : sizeof(float)=4
4)、int *p : sizeof(p)=4
5)、int f[0] : sizeof(f)=0;sizeof(*f)=46)、long double s : sizeof(s)=16
7)、long l : sizeof(l)=8
8)、double d : sizeof(f)=8
2、static&extern
1)、链接属性:属于extern链接属性的标识符无论声明多少次、位于几个源文件坐都表示相同的实体;属于internal链接属性的标识符在同一个源文件中的所有声明中指向同意实体;属于none属性的标识符,每次声明都代表一个单独的实体。
2)、存储类型:变量的缺省存储类型是auto,存于堆栈中。静态存储类型(static)的变量在整个程序执行过程中一直存在,但并不会修改该变量的作用域。register用于自动变量的声明,提示它们应该存储在寄存器中而不是内存中。
3)、static与extern的关系:如果一个声明在正常情况下具有external链接属性,在它前面加上static关键字可以使它的链接属性变为internal。static只对缺省链接属性的external的声明才有改变链接属性的效果。
4)、static关键字:当它用于函数定义时或者用于代码之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标识符的存储类型和作用域不会受到影响。当它用于代码块内部的变量声明时,static关键字修改变量的存储类型,从自动变量转化为静态变量,但其链接属性和作用域不会受到影响。
阅读(1248) | 评论(0) | 转发(0) |