Day4 | 每天五道题

1、简述内部函数与外部函数的区别。

答︰

函数有内部函数与外部函数之分。函数本质上是外部的,可以供本文件或其他文件中的函数调用,但是在其他文件调用时要用extern对函数进行声明。如果在定义函数时用static声明,表示其他文件不得调用此函数,即把它“屏蔽”起来。

2、简述库函数和自己定义的函数的区别。

答︰

从用户使用的角度看,函数有两种:

①库函数,即标准函数。这是由系统提供的,用户不必自己定义这些函数,可以直接使用它们。

②用户自己定义的函数,用来解决用户的特殊需要。

如果在程序中使用库函数,必须在本文件的开头用#include指令把与该函数有关的头文件包含到本文件中来,如用数学函数时要加上#include <math.h>。如果用用户自己定义的函数,必须先定义,后调用。需要注意的是,如果函数的调用出现在函数定义位置之前,应该在调用函数之前用函数的原型对该函数进行引用声明。

3、带参的宏与函数有什么区别?  

答︰

1.函数调用,求出实参表达式的值,再带入形参。而宏只进行简单的字符替换。 

2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。 

3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,无类型,只是一个符号代表,展开时带入指定的字符即可。宏定义时,字符串可以是任何类型的数据。

4.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。 

5.使用宏次数多时,每展开一次都使程序增长,而函数调用不使源程序变长。  

6.宏不占运行时间,只占编译时间;函数占运行时间(分配、保留、值传递、返回)。 

4、简述全局变量与局部变量。

答:

第一,变量的作用域是指变量有效的范围。根据定义变量的位置不同,变量分为局部变量和全局变量。

第二,凡是在函数内或复合语句中定义的变量称为局部变量,其作用域限制在函数内或复合语句内,函数外或复合语句外不能引用该变量。

第三,在函数外定义的变量称为全局变量,它的有效范围为从定义变量的位置开始到本源文件结束。可以用extern对变量作“外部声明”,将作用域扩展到本文件中作extern声明的位置处,或在其他文件中用extern声明将作用域扩展到其他文件。用static声明的静态全局变量禁止其他文件引用该变量,只限本文件内引用。

5、使用全局变量的优点和缺点是什么?  

答:

(1)优点:①所有函数之前定义的全局变量可被本文件中所有函数共用;②全局变量的有效范围是它定义的位置到本源文件结束;③全局变量增加了函数之间的联系通道;④全局变量与局部变量重名时,在函数内部将屏蔽全局变量。  

(2)缺点:①过多的全局变量使函数之间的“耦合性”增加,不利于程序的移植;②过多的全局变量使程序的可读性变差;③外部变量可加强函数模块之间的数据联系,但又使这些函数依赖这些外部变量,因而使得这些函数的独立性降低;④从模块化程序设计的观点来看这是不利的,因此,不是非用不可时建议不使用外部变量;⑤全局变量在程序执行的全过程都占用存储单元。 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值