Muponder

为者常成,行者常至。

C++博客 首页 新随笔 联系 聚合 管理
  1 Posts :: 7 Stories :: 7 Comments :: 0 Trackbacks
标识符:是我们在程序中提供给变量、类型、函数的名称。
作用域:当变量在程序中的某一个部分被声明时,它只有在程序的一定区域才能被访问,这个区域由标识符的作用域决定,而标识符的作用域就是程序中该标识符可以被访问的区域。例如:函数的局部变量的作用域就只能在该函数的函数体内,其他函数希望在这些变量的作用域之外通过标识符访问他们,将会访问失败;其次,可以在不同的作用域内声明一个相同的变量标识符。
编译器可以确认4种不同类型的作用域:文件作用域、函数作用域、代码块作用域和原型作用域。
文件作用域:任何在所有代码块之外的标识符都具有文件作用域(file scope),这些标识符从他们声明处到源文件结束处都可以访问。
函数作用域:函数作用域适用于语句标签,语句标签用于GOTO语句,基本上,现在编程都不使用GOTO语句了,这个可以不去理解。
原型作用域:原型作用域只适用 于在函数原型中声明的参数名,它主要的功能是防止与程序其他部分的名字冲突,但唯一可能出现的冲突就是在同一个原型中不止一 次的使用同一名字。
代码块作用域:位于一对花括号是的所有语句称为一个代码块,任何在代码块的开始位置声明的标识符都具有代码块作用域(block scope),表示它们可以被这个代码块的所有语句访问。
链接属性:主要是用于处理多次声明标识名称后,如何判断这个标识符是否是指的同一个。标识符的作用域与它的链接属性有关,但这两个 是不同的概念。链接属性包括3种:external(外部)、internal(内部)和none(无)。链接属性只针对相同的标识符,对于不同的标识符不具有链接属性。默认标识符的链接属性为extern, static只对缺少链接属性extern的声明都有改变链接属性的效果。
存储类型:指存储变量值的内存类型,存储类型决定变量何时创建、何时销毁以及它的值将保持多久。
存储变量有主要有三个地方:普通内存、运行时堆栈、硬件寄存器。 变量的缺少存储类型取决于它的声明位置,凡是在任何代码块之外声明的变量总是存储于静态内存中。 代码块内部声明的变量的缺省存储类型是自动的(automatic),也就是存储于堆栈中。但是如果在代码块内部的变量前加上关键字static,则它的存储类型将变成静态的。 关键字register可以用于自动变量的生命,提示它们应该存储于机器的硬件寄存器而不是内存中,称为寄存器变量。
posted on 2012-02-24 21:49 盛源博 阅读(197) 评论(0)  编辑 收藏 引用 所属分类: 【C/C++】

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理