C语言中,形参的缺省的存储类说明是什么

如题所述

1、形参的类型是不能省略的。函数的存储类型就是函数定义时函数名前面的数据类型前面的存储类型,缺省时应该是:extern ,表示该函数属外部函数(即可以被本C文件外的其他C源程序文件中的函数调用)。
2、对于自定义函数,可使用缺省参数来达到某一程度的“重载”等功能,缺省参数只能放在函数声明中,因为编译器必须在使用前知道缺省值。只有函数参数列表后部参数能够缺省,一旦在某一位置使用缺省参数值后,自此位置以后皆为缺省参数值。
缺省参数可以让参数没有标识符,在C++中,函数定义是,不一定需要标识符:
void f(int number, int = 0, float = 1.1f);
void f(int number, int , float f){/* .... */}
在此函数体中,number与f可被引用,但没有标识符的int则不行,调用时如f(0)(此时函数的参数列表为(0,0,1.1))或f(0,1,2)。这种语法允许我们将一个参数作为占位符而不去使用它,其目的在于我们以后可以修改函数定义而uxuyao修改所有的函数调用(存在参数名没有使用编译器将给出一个警告),更重要的是当我们开始使用一函数参数后发现不需要它时,我们可以高效地将它删除而不会产生警告错误,并且不需要修改函数那些调用函数以前版本的程序代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-11
还是这么说吧...

形参上加储存类型是一个没规定的东西。像VC里就允许这么干,但是什么效果也没有。实参被保存在哪儿完全由调用方式决定。

49题
A. 把作用域混淆了,我也搞不清楚它想说life-time还是scope。局部变量的scope的话的确只和定义位置有关系。life-time的话则只有是函数内部局部变量才是这样
B. 太含糊了。不过绝对不是全局变量只能在cpp开头定义,某人说的有点不懂装懂了。使用前不声明当然编译会出错。当然,像结构体定义里就定义不了全局变量... 文字游戏么b
C. 全局变量有时候指全局生存期的变量。这种情况下static修饰的函数内部变量会被称作全局变量... 一样的含糊。
D. 只是为了只有一个函数使用的全局变量这样写方便吧.... 怪异的说法...
本回答被网友采纳
相似回答