函数作用域 函数作用域是指某个函数的整个函数体 ■语句标号是唯一具有函数作用域的标识符 具有函数作用域的标识符在定义它们的函数体 中的任何地方都可以访问 函数作用域与局部作用域的区别是: 函数作用域包括整个函数,而局部作用域是从定 义点开始到函数定义或复合语句结束 。 在函数体中,一个语句标号只能定义一次,即使 是在内层的复合语句中,也不能再定义与外层相 同的语句标号
函数作用域 ◼ 函数作用域是指某个函数的整个函数体。 ◼ 语句标号是唯一具有函数作用域的标识符。 ◼ 具有函数作用域的标识符在定义它们的函数体 中的任何地方都可以访问。 ◼ 函数作用域与局部作用域的区别是: • 函数作用域包括整个函数,而局部作用域是从定 义点开始到函数定义或复合语句结束。 • 在函数体中,一个语句标号只能定义一次,即使 是在内层的复合语句中,也不能再定义与外层相 同的语句标号
void f() { void h(int n) goto L;//OK x++;//Error 11111 intx=0;/x的定义 L:./儿的定义 ×++;/OK {… 1111111 //Error { double x;//OK goto L;//OK ×=10.0;/0K 01111 } 111111 void g() { goto L;//Error 1111nn
void f() { ...... goto L; //OK ...... L: ... // L的定义 ...... { ...... L: ... //Error ...... } ...... goto L; //OK ...... } void g() { ...... goto L; //Error ...... } void h(int n) { x++; //Error int x=0; // x的定义 x++; //OK ....... { ...... double x; //OK x = 10.0; //OK } ...... }
函数原型作用域 函数原型作用域是指 用于函数声明的函数原型,其中的形式参数名 的作用域从函数原型开始到函数原型结束。它 隐含着在该函数原型之外可以定义与它的形式 参数同名的其它程序实体: 例如: void f(intx,double y);/其中的x和y的作 用域是从“("开始到“)”结束 intx=0,y=0;/x和y是两个全局变量
函数原型作用域 ◼ 函数原型作用域是指 • 用于函数声明的函数原型,其中的形式参数名 的作用域从函数原型开始到函数原型结束。它 隐含着在该函数原型之外可以定义与它的形式 参数同名的其它程序实体: • 例如: • void f(int x, double y); //其中的x和y的作 用域是从“(”开始到“)”结束 • int x=0,y=0; //x和y是两个全局变量