C语言程序设计 用函数实现模块化程序设计.ppt

C语言程序设计 用函数实现模块化程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#includestdio.h int p=1,q=5; int f1(int a) {extern char c1,c2; c1=a; c2=2*a; return a*a; } char c1,c2; void main() { int a; a=f1(10); printf(a,c1,c2=%d,%d,%d\n,a,c1,c2); } 定义外部变量 声明外部变量 定义外部变量 外部变量的声明 思考:在f1函数中声明c1,c2的作用是什么?如何修改使所有函数可以使用外部变量而不需要声明。 用extern进行声明,以使其作用域扩大 外部变量声明的一般格式 extern 数据类型 变量名1,…,变量名n; 或 extern 变量名1,…,变量名n; 注意: ①外部变量声明用关键字extern,而外部变量的定义不能用extern,只能隐式定义。 ②定义外部变量时,系统要给变量分配存储空间,而外部变量声明时,系统不分配存储空间,只是让编译系统知道该变量是一个有定义的外部变量,与函数声明的作用类似。 #includestdio.h int p=1,q=5; int f1(int a) {extern char c1,c2; c1=a; c2=2*a; return a*a; } char c1,c2; void main() { int a; a=f1(10); … } // file1.cpp文件程序如下: #includestdio.h int i; void main() { void f1(),f2(),f3(); i=1; f1(); printf(\tmain:i=%d,i); f2(); printf(\tmain:i=%d,i); f3(); printf(\tmain:i=%d\n,i); } void f1() { i++; printf(\nf1:i=%d,i); } 定义外部变量 //file2.cpp 文件程序如下: #includestdio.h extern int i; void f2() { int i=3; printf(\nf2:i=%d,i); } void f3() { i=3; printf(\nf3:i=%d,i); } 声明外部变量 4.寄存器变量(register类别) 只有函数内定义的变量或形参可以定义为寄存器变量。寄存器变量的值保存在CPU的寄存器中。 受寄存器长度的限制,寄存器变量只能是char、int和指针类型的变量。 【例8.26】寄存器变量的使用。 void main( ) { long int sum=0; register int i; for (i=1; i=1000; i++) sum+=i; printf(sum=%ld\n,sum); } 程序输出结果: sum=500500 变量存储类型 静态 动态 存储方式 程序整个运行期间 函数调用开始至结束 生存期 编译时赋初值,只赋一次 每次函数调用时 赋初值 自动赋初值0或空字符 不确定 未赋初值 静态存储区 动态区 存储区 寄存器 局部变量 外部变量 作用域 定义变量的函数或复合语句内 本文件 其它文件 局部变量默认为auto型 register型变量个数受限,且不能为long, double, float型 局部static变量具有全局寿命和局部可见性 extern不是变量定义,可扩展外部变量作用域 register 局部static auto 外部static 外部 存储类别 7.7 函数的存储分类 外部函数: extern int fan(char a,char b) { …… } 内部函数: static int func( ) { …… } 外部函数和静态函数区别: 外部函数允许本程序其他文件中的函数调用 (与外部变量类似)。 内部函数禁止本程序其他文件中的函数调用 (与静态外部变量类似)。 extern可以省略 外部函数调用例子 从键盘输入一行字符放在str数组中,然后从键盘输入一个字符c,从str 中把字符c删除,然后输出str字符。 要求 1.在file1文件中定义主函数 2.在file2文件中定义字符串输入函数 3.在file3文件中定义删除字符函数 4.在file4文件中定义字符串输出函数 //file1.cpp: #includestdio.h void main() { extern void enter_string(char str[80]); extern void delete_string(char str[],char ch); extern void p

文档评论(0)

chqs52 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档