c语言隐函数类别是啥 什么函数属于隐函数

18. 在C语言中,函数的隐含存储类别是( )。 (A) auto (B) static (C) extern (D) 无存储类别

形参是放在堆栈中的除非特殊声明的函数如cxxbuilder

创新互联 - 双线服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,双线服务器托管,西南服务器托管,四川/成都大带宽,成都机柜租用,四川老牌IDC服务商

fastcall!所以选a;

参数一般不会声明为寄存器变量的!这样的函数没有办法调用!

因为形参放在何处由函数的调用约定来确定,而不是由参数的存储类型决定!

同样外部变量或静态变量也不会,不能定义成寄存器变量。

寄存器变量只适合函数内部定义的,用完不管的,通常是循环的计数变量!

静态和外部是常用的两个存储类型。

外部变量一定在函数外部定义,这就是c,c++,外部变量中的“外部”的真实含义。

静态变量,可以定义在

1)函数外部,属于文件模块的,表示文件内部的具有全局性质的局部变量(存储在全局数据区。

2)函数内部,第一层大括号内,属整个函数全局性质的局部变量。

存储在全局数据区。

3)函数内部的任何非数据定义的两个大括号内部;

分程序(c一般叫语句组)属整个分程序全局性质的局部变量。存储在全局数据区。

而函数内的非静态数据缺省为自动变量,所auto一般会省略不写。

外部变量,一般定义时也省略掉extern,

只有在头文件里,和使用非本文件定义的外部变量时,以及函数内部引用外部变量时,

才写上extern

表示这是引用说明,不是定义,要看定义别处找找。

如果本文件没定义,就是引用别的文件的同名变量!

所以除了函数参数(形参)和函数内部非静态变量,再没有自动变量了。

函数内部可以定义三种变量,局部静态变量,自动变量,寄存器变量;外部变量在函数内部只能有引用说明!不能在函数内部定义!

extern外部,静态static两个存储类型是相对的。

外部变量,全部在函数外部定义。外部变量,分配在全局数据区,是全局变量。

外部是相对函数的。

静态有定义在函数内部,和函数外部的区分,还有函数内部全局,和函数内部某一语句组内部的区分,实际上,无论哪种静态变量,都属于全局变量,分配在全局数据区。

ps:

除了变量外,函数也有

extern外部,静态static

两种存储类型。

由于c语言不允许函数内部定义函数。

所以函数只有这两种存储类型。

函数的缺省存储类型是extern,

所以无论定义,还是引用说明,通常都会省略extern;

c语言中,只有写了static的函数,才是静态函数。

c语言中,函数可以在函数内部,有引用说明,不会在函数定义在函数内部。

c++中

类也有静态变量和静态函数;

由于类的静态函数和静态变量的外部定义会有类名和作用域限定符(也叫作用域运算符)::作为前缀,所以类外定义不写static;

类也有静态变量和静态函数的含义是这个变量和函数属于整个类的(实际也是全局变量,分配在全局数据区),除了类和他的成员,外不能使用它了。

类通过类名,成员通过它本身(obj.

;pobj-;

(*pobj).

refobj.

类名::)使用;

只要类本身定义了。

不通过类的对象,就可以使用类的静态变量和静态函数。

其他成员,除了构造函数外都必须通过通过类的对象,才能使用。

C语言中,函数的隐含存储类型是:A. auto B.static C.extern D.register

C。

C语言规定,只要在定义函数时不进行存储类型的显式说明,函数的存储类型就隐含为外部类型,即extern型,外部类型允许其他文件中的函数调用。

实际上函数的声明和定义都不需要添加extern关键字,在实际使用的时候也最好不要添加关键字。

如果一个函数是不会被其它文件调用的,那么这个函数应该被声明成static的。

如:

extern int func(void){

return 0;

}

int func(void){

return 0;

}

是等价的,另外

extern int func(void);

int func(void);是等价的。

扩展资料:

函数调用的一般形式为:

函数名(实参表列);

如果是调用无参函数,则"实参表列"可以没有,但括弧不能省略。如果实参表列包含多个实参,则个参数间用逗号隔开。实参与形参的个数应相等,类型应一致。

实参与形参按顺序对应,一一传递数据。但应说明,如果实参表列包括多个实参,对实参求值的顺序并不是确定的,有的系统按自左至右顺序求实参的值,有的系统则按自右至左顺序

参考资料:

百度百科-c函数

c语言中,函数的隐含存储类别及形参的默认存储类别分别是

c语言中,函数的隐含存储类别是extern

形参的默认存储类别是auto

C语言中,函数的隐含存储类别是 auto 还是 extern,为什么两种答案我都看到过

函数的存储类型指的是其他文件模块可否访问,其类别可以是extern或static。

static是指该函数只能被本源程序文件道中的模块访问。extern是指可被本源程序文件外的模块访问。

C语言中函数的存储类型隐含为版全局的,因此默认为extern。

函数内定义的变量,默权认作用域在本函数内,即其类型是auto。

扩展资料:

C语言中提供了存储说明符auto、register、extern、static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。

其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字auto定义局部变量这一作法保持一致。

extern用在变量声明中常常有这样一个作用:要在*.c文件中引用另一个文件中的一个全局的变量,那就应该放在*.h中用extern来声明这个全局变量。

extern用于变量的用法:

1、extern int a;//声明一个全局变量a

2、int a; //定义一个全局变量a

3、extern int a =0 ;//定义一个全局变量a 并给初值。一旦给予赋值,一定是定义,定义才会分配存储空间。(注意:经过测试在GCC中,这样定义变量是不能通过编译的,而在VS2013可以)

参考资料来源:百度百科——extern

参考资料来源:百度百科——auto

C语言中函数隐含存储类型是什么?

函数的隐含存储类型是extern,按照c语言的原则,函数隐含为全局都可以访问,因此默认为extern,而auto只用于变量,是变量的隐含存储类型。

C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是?

这个说法是正确的,C语言确实允许这样,但C++不允许这样

你在vs2017上看到波浪线是因为vs2017默认是个c++编译器,要让vs2017按照c规则编译代码,把源代码文件的扩展名改成".c"就可以了


网站名称:c语言隐函数类别是啥 什么函数属于隐函数
文章路径:http://hbruida.cn/article/hjjeid.html