【精品】C程序设计(第三版)33
第八章 8.1 概述 例8.18 输出1到5的阶乘值 #include stdio.h void main() {int fac(int n); int i; for(i=1;i<=5;i++) printf(″%d!=%d\n″,i,fac(i)); } Int fac(int n) {static int f=1; f=f*n; return(f); } 8.9.4 register变量 变量的值是存放在内存中的。当程序中用到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到运算器中。 经过运算器进行运算,如果需要存数,再从运算器将数据送到内存存放。 如果有一些变量使用频繁,则为存取变量的值要花费不少时间。为提高执行效率,C语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。由于对寄存器的存取速度远高于对内存的存取速度,因此这样做可以提高执行效率。这种变量叫做寄存器变量,用关键字register作声明。 例8.19使用寄存器变量 #include stdio.h void main ( ) {long fac(long); long i,n; scanf(%ld,n); for(i=1;i=n;i++) printf(%ld!=%ld\n,i,fac(i)); } long fac(long n) {register long i,f=1; /*定义寄存器变量*/ for (i=1;i=n;i++) f=f*i; return (f); } 8.9.5 用extern声明外部变量 外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。编译时将外部变量分配在静态存储区。用extern来声明外部变量,以扩展外部变量的作用城。 1. 在一个文件内声明外部变量 例8.20 用extern声明外部变量,扩展它在程序文件中的作用域 #include stdio.h void main() { int max(int,int); /*外部变量声明*/ extern A,B; printf(%d\n,max(A,B)); } int A=13,B=-8; /*定义外部变量*/ int max(int x,int y) /*定义max函数 */ { int z; z=xy?x:y; return(z); } 2. 在多文件的程序中声明外部变量 #include stdio.h int A; /*定义外部变量*/ void main() {int power(int); /*函数声明*/ int b=3,c,d,m; printf(″enter the number a and its power m:\n″); scanf(″%d,%d″,&A,&m); c=A*b; printf(″%d*%d=%d\n″,A,b,c); d=power(m); printf(″%d**%d=%d\n″,A,m,d); } 例8.21 用extern将外部变量的作用域扩展到其他文件。本程序的作用是给定b的值,输入a和m,求a×b和am的值。文件file1.c中的内容为: 文件file2.c中的内容为: extern A; /*声明A为一个已定义的外部变量*/ int powre(int n); {int i,y=1; for(i=1;i<=n;i++) y*=A; return(y); } printf(a[i]b[i] %d times\na[i]=b[i] %d times\na[i]b[i] %d times\n,n,m,k); if(nk) printf(array a is larger than array b\n); else if (nk) printf(array a is smaller than array b\n); else printf(array a is equal to array b\n); } large(int x,int y) { int flag; i
您可能关注的文档
- 【最新资料】正常心电图ppt模版课件.ppt
- 【步步高】2017版高考政治人教版(全国)一轮复习【课件 讲义 题库】选修2 专题三西方国家现代市场经济的兴起与主要模式.pptx
- 【毕业论文】二次规划问题的变时滞神经网络模型的全局指数稳定.ppt
- 【清新淡雅动态】医院医疗医生护士总结汇报类PPT模板_图文.ppt.ppt
- 【环境课件】涉水专有名词及解释.ppt
- 【湖南专版】2012届学海导航高三生物第二轮复习课件 专题2 小专题03 ATP、酶与酶的实验专题.ppt
- 【班主任培训课件】从心理健康的视角看留守儿童的德育问题.ppt
- 【电气与自动化】Chapter 6 神经网络控制.ppt
- 【生物课件】解剖生理学20神经.ppt
- 【畜牧课件】第十章 神经系统.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)