关于C中函数存储的问题,希望指导!
如题:#include <stdio.h>
int fun(int a) //请问函数存储在内存空间中,是以静态存储的还是以动态存储?
{
a = 1+1;
return a;
}
static int fun1(int a) //以static定义静态函数fun1与上面fun函数的定义有什么区别?
{
a = 1+1;
return a;
}
/* 补充提问:以static定义静态函数 它的作用域是是否跟静态全局变量一样,作用域只是在源文件上 */
static int fun1(int a);//在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别
int main (void)
{
int fun(int a);
return 0;
} fun1 的话 在其他的.C文件中(包含该.H文件) 不能调用 除非使用extern
在该文件中 只能在fun1函数下面的函数才能调用该函数 wqlovt 发表于 2012-2-19 14:54 static/image/common/back.gif
fun1 的话 在其他的.C文件中(包含该.H文件) 不能调用 除非使用extern
在该文件中 只能在fun1函数下面的 ...
谢谢回答{:5_109:}在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别
?? /鸡蛋饼. 发表于 2012-2-19 19:06 static/image/common/back.gif
谢谢回答在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别
??
执行起来没什么区别。
只是有些函数代码太大,为了维护方便,必须得弄到主函数外。 Mr.C 发表于 2012-2-19 19:15 static/image/common/back.gif
执行起来没什么区别。
只是有些函数代码太大,为了维护方便,必须得弄到主函数外。
是这样呀 。。谢谢版主大大!! static说明符放在函数前说明函数作用域是文件作用域。。
别的文件无法调用
作用域是声明开始到文件末尾
声明只有在定义上方才有意义
所以你写的两个声明都没意义的
函数定义就是声明和定义。。。 如题:
#include <stdio.h>
int fun(int a) //请问函数存储在内存空间中,是以静态存储的还是以动态存储?
{
a = 1+1;
return a;
}
函数在内存中是静态存储的,但这里的静态不意味着它是static函数,static修饰函数的时候表示该函数仅本.c文件可使用
static int fun1(int a) //以static定义静态函数fun1与上面fun函数的定义有什么区别?
{
a = 1+1;
return a;
}
区别就是前面那个函数本程序中任何的.c文件都可调用,这个static函数仅本.c文件可调用
/* 补充提问:以static定义静态函数 它的作用域是是否跟静态全局变量一样,作用域只是在源文件上 */
是的
static int fun1(int a);//在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别
int main (void)
{
int fun(int a);
return 0;
}
区别在于:
在主函数外对"函数原型"进行申明 则本文件的所有函数都可以调用该函数
在主函数内声明,本文件内只有主函数可调用该函数,因为其它函数“看不见”该函数的声明 仰望天上的光 发表于 2012-2-19 21:47 static/image/common/back.gif
如题:
#include
谢谢指导!!!!! ccqiji 发表于 2012-2-19 20:13 static/image/common/back.gif
static说明符放在函数前说明函数作用域是文件作用域。。
别的文件无法调用
作用域是声明开始到文件末尾
谢谢指导 !!!!! {:7_146:}咱们码农有力量,嘿{:7_146:}
页:
[1]