正在加载图片...
第5单元函数 void maino x=0;//在主函数中为全局变量x赋值 在上面的程序中一共有3个变量x:一个是全局变量,一个是函数 final()的参数, 还有一个是函数func2()中的局部变量。虽然我们说全局变量的作用范围是整个源程序, 但就上面这段程序而言,只有在主函数中才能使用全局变量x,而在其他两个函数中的x 均是它们的参数或局部变量。这种现象可以用“地方保护主义”形象地说明。 也可以在函数内部的变量声明语句之前加上外部说明符 extern说明该函数中用的就是 外部变量,而非一个同名的局部变量。例如 int x =0: //全局变量声明 func o extern int x,y;//变量x,y都是相应的外部变量 与此类似,声明于函数或分程序中的局部变量的作用域是整个函数或分程序,包括其中 嵌套的所有其他分程序。但是,在内层分程序中声明的变量与其外层的函数或分程序中声明 的变量重名时,仍是按上述原则确定各自的作用域,即内层变量声明优先于外层变量声明 不过,为了使程序清晰易读,最好不要在嵌套的分程序中声明重名的变量 自学内容 55内联函数 在调用函数时,系统要做许多工作,主要包括断点现场保护、数据进栈、执行函数体 保存返回值、恢复现场和断点等,开销很大 有些函数的函数体比较简单(如例5-3中的函数max(),在调用时,执行函数体所消 耗的时间与函数调用时的其他时间开销相比就显得微不足道。如果该函数被频繁调用,则附第 5 单元 函数 - 92 - ... ... } void main() { ... ... x = 0; // 在主函数中为全局变量 x 赋值 ... ... } 在上面的程序中一共有 3 个变量 x:一个是全局变量,一个是函数 func1()的参数, 还有一个是函数 func2()中的局部变量。 虽然我们说全局变量的作用范围是整个源程序, 但就上面这段程序而言,只有在主函数中才能使用全局变量 x,而在其他两个函数中的 x 均是它们的参数或局部变量。这种现象可以用“地方保护主义”形象地说明。 也可以在函数内部的变量声明语句之前加上外部说明符 extern 说明该函数中用的就是 外部变量,而非一个同名的局部变量。例如 int x = 0; // 全局变量声明 ... ... func() { extern int x,y;// 变量 x,y 都是相应的外部变量 ... ... } int y = 0; ... ... 与此类似,声明于函数或分程序中的局部变量的作用域是整个函数或分程序,包括其中 嵌套的所有其他分程序。但是,在内层分程序中声明的变量与其外层的函数或分程序中声明 的变量重名时,仍是按上述原则确定各自的作用域,即内层变量声明优先于外层变量声明。 不过,为了使程序清晰易读,最好不要在嵌套的分程序中声明重名的变量。 自学内容 5.5 内联函数 在调用函数时,系统要做许多工作,主要包括断点现场保护、数据进栈、执行函数体、 保存返回值、恢复现场和断点等,开销很大。 有些函数的函数体比较简单(如例 5-3 中的函数 max()),在调用时,执行函数体所消 耗的时间与函数调用时的其他时间开销相比就显得微不足道。如果该函数被频繁调用,则附
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有