1. 首先看函数的定义:
类型 函数名(形式参数)
{
代码块 //函数体就是代码块
}
函数名本身不属于任何代码块。
函数原型中声明参数 // 原型作用域。在原型中,参数的名字并非必须。如果出现,可以随便取任何名字,不必和形参、实参匹配。
函数定义的形式参数 //在函数体内部具有代码块作用域
函数调用的实际参数
2. 作用域(是对标识符而言,标识符:就是变量、函数、类型等的名字。它们有大小写字母、数字和下划线组成,但不能以数字开头。)
代码块作用域:任何在代码块的开始位置声明的标识符都具有代码块作用域,表示它们可以被这个代码块中的所有语句访问。(代码块:位于一对花括号之间的所有语句称为一个代码块。)
文件作用域:代码块之外(除了函数定义的形参)声明的标识符都具有文件作用域。
原型作用域:只适用于函数原型中声明的参数。
函数作用域:用于goto语句。我希望你永远不要用到这个知识,就是说它基本上不会用到。
3. 链接属性
环境:一个程序可有多个源文件组成,如果相同的标识符出现在几个不同的源文件中时,它们是像Pascal那样表示同一个实体?还是表示不同的实体?
标识符的链接属性决定如何处理在不同文件中出现的标识符。标识符的作用域与它的链接属性有关,但这两个属性并不相同。
链接属性有三种:
external(外部):属于external链接属性的标识符不论声明多少次、位于几个源文件都表示同一个实体。
internal(内部):属于internal链接属性的标识符在同一个源文件内的所有声明都指同一个实体,但位于不同源文件的多个声明则分属不同的实体。
none(无):没有链接属性的标识符(none)总是被当作单独个体,也就是说该标识符的多个声明被当作独立不同的实体。
时间: 2024-10-09 04:25:49