内部函数其它文件不能如何调用m文件的函数,请大神改为外部函数

热门搜索:
硕士/研究生
&&&&&&DOC文档下载
游客快捷下载
会员登录下载
下载资源需要10元
邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。注:支付完成后需要自己下载文件,并不会自动发送文件哦!
支付方式:
已注册用户请登录:
当日自动登录&&
&&合作网站一键登录:
1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
2、文档下载后都不会有金锄头文库的水印,预览文档经过压缩,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、所有文档都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
下载须知 | 常见问题汇总
C语言-内部函数和外部函数
LAP810内部函数和外部函数函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数不能被其他文件调用根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。8101内部函数如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加STATIC。即STATIC类型标识符函数名形参表如STATICINTFUNINTA,INTB内部函数又称静态函数。使用内部函数,可以使函数只局限于所在文件,如果在不同的文件中有同名的内部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其他文件中函数同名,通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都STATIC使之局部化,其他文件不能引用。8102外部函数1在定义函数时,如果在函数首部的最左端冠以关键字EXTERN,则表示此函数是外部函数,可供其他文件调用。如函数首部可以写为EXTERNINTFUNINTA,INTB这样,函数FUN就可以为其他文件调用。C语言规定,如果在定义函数时省略EXTERN,则隐含为外部函数。本书前面所用的函数都是外部函数。LAP2在需要调用此函数的文件中,用EXTERN声明所用的函数是外部函数。例822有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。FILE1.C(文件1)MAIN(){EXTERNENTERSTRING(CHARSTR[80]);EXTERNDELETESTRING(CHARSTR[],CHARCH);EXTERNPRINTSTRINGCHARSTR[]);//以上3行声明在本函数中将要调用的在其他文件中定义的3个函数CHARC;CHARSTR[80];ENTERSTRING(STR);SCANF(%C,&C);DELETESTRING(STR,C);PRINTSTRING(STR);}FILE2.C(文件2)#INCLUDEENTERSTRING(CHARSTR[80])/?定义外部函数ENTERSTRING/{GETS(STR);}/?读入字符串STR/FILE3.C(文件3)DELETESTRINGCHARSTR[],CHARCH)//?定义外部函数DELETESTRING?{INTI,J;FOR(I=J=0;STR[I]=′\0′;I++)IF(STR[I]=CH)STR[J++]=STR[I];STR[J]=′\0′;}LAPFILE4.C(文件4)PRINTSTRING(CHARSTR[])/?定义外部函数PRINTSTRING?/{PRINTF(%S,STR);}运行情况如下ABCDEFGC?(输入STR)C?(输入要删去的字符)ABDEFG(输出已删去指定字符的字符串)整个程序由4个文件组成。每个文件包含一个函数。主函数是主控函数,除声明部分外,由4个函数调用语句组成。其中SCANF是库函数,另外3个是用户自己定义的函数。函数DELETESTRING的作用是根据给定的字符串STR和要删除的字符CH,对STR作删除处理。算法是这样的对STR数组的字符逐个检查,如果不是被删除的字符就将它存放在数组中,见图821(设删除空格)。从STR[0]开始逐个检查数组元素值是否等于指定要删除的字符,若不是就留在数组中,若是就不保留。从图中可以看到,应该使STR[0]赋给STR[0],STR[1]?STR[1],STR[2]?STR[2],STR[3]STR[3],然后STR[5]?STR[4]请读者注意分析如何控制I和J的变化,以便使被删除的字符不保留在原数组中。这个题目当然可以设两个数组,把不删除的字符一一赋给新数组。但我们只用一个数组,只把不被删除的字符保留下来。由于I总是大于或等于J,因此最后保留下来的字符不会覆盖未被检测处理的字符。最后将结束符‘\0’也复制到被保留的字符后面。程序中3个函数都定义为外部函数。在MAIN函数中用EXTERN声明在MAIN函数中用到的ENTERSTRING、DELETESTRING、PRINTSTRING是在其他文件中定义的外部函数。通过此例可知使用EXTERN声明就能够在一个文件中调用其他文件中定义的函数,或者说把该函数的作用域扩展到本文件。EXTERN声明的形式就是在函数原型基础上加关键字EXTERN见本例MAIN函数中的声明形式)。由于函数在本质上是外部的,在程序中经常要调用外部函数,为方便编程,C语言允许在声明函数时省写EXTERN。例821程序MAIN函数中对POWER函数的声明就没有用EXTERN,但作用相同。一般都省写EXTERN,例如例822程序MAIN函数中的第一个函数声明可写成ENTERSTRINGCHARSTR[80]这就是我们多次用过的函数原型。由此可以进一步理解函数原型的作用。用函数原型也能够把函数的作用域扩展到定义该函数的文件之外(不必使用EXTERN)。只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统该函数在本文件中稍后定义,或在另一文件中定义。利用函数原型扩展函数作用域最常见的例子是INCLUDE命令的应用。在前面几章中曾多次使用过INCLUDE命令,并提到过在INCLUDE命令所指定的“头文件”中包含有调用库函数时所需的信息。例如,在程序中需要调用SIN函数,但三角函数并不是由用户在本文件中定义的,而是存放在数学函数库中的。LAP按以上的介绍,必须在本文件中写出SIN函数的原型,否则无法调用SIN函数。SIN函数的原型是DOUBLESINDOUBLEX显然,要求程序设计者在调用库函数时先从手册中查出所用的库函数的原型,并在程序中一一写出来是麻烦而困难的。为减少程序设计者的困难,在头文件MATHH中包括了所有数学函数的原型和其他有关信息,用户只需用以下INCLUDE命令INCLUDE这样,在该文件中就能合法地调用各数学库函数了。举例加深理解C语言的内部函数指的是C语言自带的函数,无论是动态链接的或静态链接的这些函数通过C语言的头文件定义了例如,SIN,COS等数学函数,在MATHH中定义了,输入输出函数PRINTF,FGETC在STDIOH中定义了,时间函数表TIME,CTIME等在TIMEH中定义了还有许多其他内部函数编程时,只要用INCLUDE写在编程头部,程序中就可调用自定义函数,就是用户自己写的函数第二种凡加写了EXTERN的函数是外部函数自定义函数可以与程序的MAIN写在同一个文件中,也可以写在另一个文件中,这时你可能还另写自己的头文件或者写EXTERN,告诉编译器,MAIN中用到的某某函数是外部函数例如,MAIN在AC中,自定义函数MY_FUNC在A2C中AC内容INCLUDEEXTERNFLOATMY_FUNCFLOATAMAIN{PRINTFRESULTF\N,MY_FUNC20}A2C内容FLOATMY_FUNCFLOATA{RETURNA}编译CLCAC得到AOBJLAPCLCA2C得到A2OBJCLAOBJA2OBJ链接成AEXE运行AEXE得RESULT2000000EXTERNFLOATMY_FUNC是外部说明,告诉编译,MAIN里的MY_FUNC是外部函数,要通过链接OBJ得到如果把MY_FUNC写在AC里INCLUDEFLOATMY_FUNCFLOATA{RETUNA}MAIN{PRINTFRESULTF\N,MY_FUNC20}MY_FUNC就不是外部函数编译CLAC得AEXE运行AEXE得RESULT2000000
本文(C语言-内部函数和外部函数)为本站会员(haoword)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“”【网址:】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
分享当前资源【C语言-内部函数和外部函数】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------
元price_share
&|&川公网安备 12号&|&经营许可证(蜀ICP备号-1)(C) by Sichuan Goldhoe Inc. All Rights Reserved.
&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>一、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站提供全自助服务,购买后点击下载按钮可以下载到你电脑或手机(系统不会发送文档到您的邮箱),请注意查看下载存放位置;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>二、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站具有防盗链功能,所以不要使用迅雷、旋风、网际快车等第三方辅助下载工具(不支持&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>QQ浏览器&/span>),否则下载下来的文件只是网页或乱码;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>三、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>由于网络原因、下载知识欠缺、本地电脑&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>或&/span>手机阻止下载等问题无法解决时,需要提供以下&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&; color: rgb(255, 0, 0);&>任意一条信息&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>给我们,我们才能更及时地为你服务:&/span>&br/>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.1、如果是注册的会员,请告诉我们你的会员账号;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.2、如果是游客下载的,请告诉我们你下载时填写的手机或者邮箱;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.3、如果是微信或QQ快捷登陆的,请告诉我们你的微信或QQ昵称;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.4、如果这些你仍然无法确定,请告诉我们你的付款单号(我们可以通过单号反过来查询你的账号和下载记录)&/span>&a href=&https://www.jinchutou.com/i-93.html& target=&_blank& style=&text-decoration: color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>&span style=&color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>看看什么是单号?&/span>&/a>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>四、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>需要下载哪份文档,请发送文档网址,而不是截图,更不要直接把标题给我们;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>五、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>其它下载常见问题详见:&/span>&a href=&https://www.jinchutou.com/info-0-23-1.html& target=&_blank& style=&font-family: 微软雅黑, &Microsoft YaHei&;&>https://www.jinchutou.com/info-0-23-1.html&/a>&br/>&/p>&p>&br/>&/p>" />
&span id=&_baidu_bookmark_start_2& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_start_4& style=&display: line-height: 0&>?&/span>&/p>&p>&span style=&font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>& & 鉴于本网发布稿件来源广泛、数量较多, 系统审核过程只针对存在明显违法有害内容(如色情、暴力、反动、危害社会治安及公共安全等公安部门明文规定的违法内容)进行处理,难以逐一核准作者身份及核验所发布的内容是否存在侵权事宜, 如果著作权人发现本网已转载或摘编了其拥有著作权的作品或对稿酬有疑议, 请及时与本网联系删除。&/span>&/p>&p>&strong style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 white-space: background-color: rgb(255, 255, 255);&>& & 侵权处理办法参考版权提示一文:&/strong>&a href=&https://www.jinchutou.com/h-59.html& target=&_blank& textvalue=&https://www.jinchutou.com/h-59.html&>https://www.jinchutou.com/h-59.html&/a>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>&&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>1、如涉及内容过多,需要发送邮箱,请电子邮箱到,我们会及时处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>2、系统一旦删除后,文档肯定是不能下载了的,但展示页面缓存需要一段时间才能清空,请耐心等待2-6小时;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>3、请版权所有人(单位)提供最起码的证明(证明版权所有人),以便我们尽快查处上传人;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>4、请文明对话,友好处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>5、为了杜绝以前再有类似的侵权事情,可以为我们提供相应的关键字,便于管理人员添加到系统后能有效排除和抵制与您(贵单位)相关版权作品上传;&/span>&/p>&p>&span id=&_baidu_bookmark_end_5& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_end_3& style=&display: line-height: 0&>?&/span>&/p>" />
&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>& & 为了维护合法,安定的网络环境,本着开放包容的心态共建共享金锄头文库平台,请各位上传人本着自律和责任心共享发布有价值的文档;本站客服对于上传人服务前,有以下几点可提前参阅:&/span>&/p>&p>&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>1、本站上传会员收益见:&a href=&https://www.jinchutou.com/h-36.html& target=&_blank&>https://www.jinchutou.com/h-36.html&/a> &/span>&/p>&p>2、本站不会为任何刚注册的上传会员特批解除上传限制,普通会员每天可以上传50份,值班经值会审核其上传内容,请自行观察自己上传的文档哪些在“临时转换中”(审核通过),哪些在审核拒绝中,连续坚持几天都没有任何文档被拒的情况下,根据文档质量和发布分类是否正常等考量合格后值班经理会特批升级会员等级,相应的权益也同时上升。&/p>&p>3、上传人本着友好、合作、共建、共享的原则,请耐心仔细的查看《&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>违禁作品内容处理规则》;&/a>&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>https://www.jinchutou.com/i-143.html&/a>&/p>&p>4、上传人可以观注本站公告,查看其它被公示永久封禁的原因&a href=&https://www.jinchutou.com/news-1.html& target=&_blank&>https://www.jinchutou.com/news-1.html&/a>&/p>&p>5、其它问题可以参阅上传常见问题指引:&a href=&https://www.jinchutou.com/info-0-25-1.html& target=&_blank&>https://www.jinchutou.com/info-0-25-1.html&/a>&/p>" />C语言-内部函数和外部函数_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言-内部函数和外部函数
&&如果一个函数只能被本文件中其他函数所调用,它称为内部函数 在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用……
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩2页未读,
定制HR最喜欢的简历
你可能喜欢函数还分内部和外部?C语言果然博大精深!函数还分内部和外部?C语言果然博大精深!C语言百家号外部函数与内部函数前面我们讲解了关于函数的调用都是针对同一个源文件中其他函数进行调用的,而在有些情况下,函数也可以对另外一个源文件中的函数进行调用。当一个程序由多个源文件组成时,根据函数是否能被其他源文件调用,可以将函数分为内部函数和外部函数两种类型。出于大家可能不了解,我就画了一个程序运行的简图。大家可能会很奇怪,怎么会有多个源文件,一般我们都是只创建一个源文件,然后在里面写代码的。事实上我们可以创建多个源文件,用来把各个功能模块区分,所以我们是可以在一个源文件中调用另一个源文件中的函数的。外部函数什么是外部函数呢?当我们在开发大型项目时,为了便于团队的协同工作,往往需要把一个项目拆分成很多源文件来分别实现,最终再把它们整合在一起。为了减少重复代码,一个源文件有时需要调用其他源文件中定义的函数。所以,在C语言中,可以被其他源文件调用的函数称为外部函数。另外在调用外部函数之前,需要在当前源文件中定义外部函数。定义外部函数的方式是在函数的返回值类型前面添加extern关键字,示例代码如下:在这个示例代码中,编译器会通过关键字知道add()函数是定义在其他文件中的外部函数。为了让大家能够掌握外部函数的用法,接下来,在first.c文件中定义一个add()函数,然后在second.c文件中使用first.c文件中定义的add()函数。first.csecond运行结果如图所示:在second.c文件中,second文件通过调用first中定义的add()函数计算出1加2的结果。second文件中的外部函数add()是在first.c文件中实现的,编译器从first中找到了该函数,并将它的作用域扩大到second文件中,于是second文件中也可以调用这个first()函数,从而完成计算。为简化编程,C语言中允许在定义外部函数时省略extern关键字。first.c中定义的外部函数add()也可以修改为下面的代码:上述代码由函数的返回类型、函数名和参数列表组成,这类格式的代码被称为函数原型。当代码中包含函数原型时,可能会有下列两种情况:1、程序员希望编译器自动从其他文件中查找该函数的定义。2、程序员先定义未实现的空函数,然后在其他文件中具体实现。接下来就来看一下printf()函数的原型写法,具体代码如下:当在main()函数中定义了printf()函数的原型后再调用时就可以不用包含头文件。在这个例题中,我们的程序并没有包含头文件,但是在代码第1行中声明了()函数的原型,那么编译器将会根据该原型自动从其他文件中查找该函数的定义,并将该函数的作用域扩展到原型所在的文件中,因此在本文件中就可以调用()函数。需要注意的是,在声明外部函数时,无论有或没有关键字,外部函数与原函数定义的返回值类型、函数名称和参数列表必须一致。内部函数从上面讲解的外部函数可知,只要声明一个函数原型就能够调用其他源文件中的函数。但是当多人参与开发一个项目时,很有可能会出现函数重名的情况,这样,不同源文件中重名的函数就会互相干扰。此时,就需要一些特殊函数,这些函数只在它的定义文件中有效,该类函数称为内部函数。在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数),示例代码如下:为了让大家熟悉内部函数的作用,接下来通过在两个源文件中定义同名的内部函数来演示内部函数的用法。second.c在first.c和second.c中,我们都定义了一个函数show(),second.c文件中的函数是内部函数。从运行结果可以看出,first.c中的show()函数被调用成功了,因此说明内部函数只会被自身调用,不会受到其他文件中同名函数的影响。从运行结果中可以看出,second.c中的show()函数被调用了。M脚下留心:如果将second.c中修饰show()函数的关键字static去除,运行时程序会提示错误,如下图所示:从这张图的错误结果可以看出,如果outer.c中的show()函数不声明为内部函数,就会受到其他文件中的同名函数的干扰。END想学习交流C语言可以申请加群:,一个人单独学习效率是很低的,只有一群相同目标的小伙伴一起学习讨论,才是进步最快的方法。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。C语言百家号最近更新:简介:喜欢C,爱C,学习C!作者最新文章相关文章简单讲解C++的内部和外部函数以及宏的定义
转载 &更新时间:日 15:46:25 & 投稿:goldensun
这篇文章主要介绍了简单讲解C++的内部和外部函数以及宏的定义,是C++入门学习中的基础知识,需要的朋友可以参考下
C++内部函数和外部函数
函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数只能被本文件调用,而不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。
如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般格式为:
static 类型标识符 函数名(形参表);
static int fun(int a, int b);
内部函数又称静态(static)函数。使用内部函数,可以使函数只局限于所在文件。如果在不同的文件中有同名的内部函数,互不干扰。通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都冠以static使之局部化,其他文件不能引用。
在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用。如函数首部可以写为:
extern int fun (int a, int b);
这样,函数fun就可以为其他文件调用。如果在定义函数时省略extern,则默认为外部函数。本教程前面所用的函数都是外部函数。
在需要调用此函数的文件中,用extern声明所用的函数是外部函数。
【例】输入两个整数,要求输出其中的大者,用外部函数实现。
/*******file1.cpp(文件1)*******/
#include &iostream&
int main( )
extern int max(int,int); //声明在本函数中将要调用在其他文件中定义的max函数
cin&&a&&b;
cout&&max(a,b)&&
/*******file2.cpp(文件2)*******/
int max(int x,int y)
z=x&y?x:y;
运行情况如下:
在计算机上运行一个含多文件的程序时,需要建立一个项目文件(project file),在该项目文件中包含程序的各个文件。详细情况请查看:VC6.0使用教程。
通过此例可知:使用extern声明就能够在一个文件中调用其他文件中定义的函数,或者说把该函数的作用域扩展到本文件。extern声明的形式就是在函数原型基础上加关键字extern。由于函数在本质上是外部的,在程序中经常要调用其他文件中的外部函数,为方便编程,C++允许在声明函数时省写extern。例4.15程序main函数中的函数声明可写成:
int max(int, int);
这就是我们多次用过的函数原型。由此可以进一步理解函数原型的作用。用函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必使用extern)。只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。
利用函数原型扩展函数作用域最常见的例子是#include命令的应用。在#include命令所指定的头文件中包含有调用库函数时所需的信息。例如,在程序中需要调用sin函数,但三角函数并不是由用户在本文件中定义的,而是存放在数学函数库中的。按以上的介绍,必须在本文件中写出sin函数的原型,否则无法调用sin函数。sin函数的原型是:
double sin(double x);
本来应该由程序设计者在调用库函数时先从手册中查出所用的库函数的原型,并在程序中一一写出来,但这显然是麻烦而困难的。为减少程序设计者的困难,在头文件cmath中包括了所有数学函数的原型和其他有关信息,用户只需用以下#include命令:
#include &cmath&
即可。这时,在该文件中就能合法地调用各数学库函数了。
C++宏定义#define
可以用#define命令将一个指定的标识符(即宏名)来代表一个字符串。定义宏的作用一般是用一个短的名字代表一个长的字符串。它的一般形式为:
#define 标识符 字符串
这就是已经介绍过的定义符号常量。如:
#define PI 3.1415926
还可以用#define命令定义带参数的宏定义。其定义的一般形式为:
#define 宏名(参数表) 字符串
#define S(a, b) a*b //定义宏S(矩形面积),a、b为宏的参数
使用的形式如下:
area=S(3, 2);
用3、2分别代替宏定义中的形式参数a和b,即用3*2代替S(3, 2)。因此赋值语句展开为:
由于C++增加了内置函数(inline),比用带参数的宏定义更方便,因此在C++中基本上已不再用#define命令定义宏了,主要用于条件编译中。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 如何调用函数文件 的文章

 

随机推荐