文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>const“变量”、define的常量和static 变量的学习体会

const“变量”、define的常量和static 变量的学习体会

时间:2010-05-24  来源:95红旗

首先讲C编译器的内存分配:

 代码区

 数据区

 用户区=线程栈+堆

其中的数据区存储:常量(define)+静态变量(static)+符号集(const)+全局变量
  然后讲一下编译的大致顺序: 注释--> 预处理--> 编译--> 连接。   它们的保存: const修饰的是变量,会被编译到符号集中去,它本身是变量这是个大前提,如果把这个概念弄错了,你就会很可能会用这个变量来做数组的维数,而数组的维数只能是常量,这点要明白。 define定义的常量就可以作为数组的维数,它当然是保存在数据区的常量空间内,并且它发生在预处理阶段,相对const变量的处理要早。 static修饰的变量则被编译进数据区的静态空间内,同const修饰的变量和define定义的常量一样,一直存在,直到程序终止。   它们的初始化(如果有的话) const修饰的变量是在编译时放到了符号集中,只是在第一次使用的时候分配空间,没有什么初始化这样的概念。 define定义的变量则是在每次出现在“=”的右边时都会分配空间,你要注意是都分配了空间。至于在预处理的时候有没有分配空间的概念,我自己尚不清楚。 static修饰的变量的初始化要等到运行的时候。   它们存在的目的: const和static修饰的数据都是有类型的,由于const修饰变量常常理解成常量,它可以看做是取代define定义的无类型常量的。 static修饰变量则多在子函数中使用,你大可发挥一下,找到它的妙用。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载