/鸡蛋饼. 发表于 2012-2-19 14:15:04

关于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;
}

wqlovt 发表于 2012-2-19 14:54:11

fun1 的话 在其他的.C文件中(包含该.H文件) 不能调用 除非使用extern

在该文件中 只能在fun1函数下面的函数才能调用该函数

/鸡蛋饼. 发表于 2012-2-19 19:06:26

wqlovt 发表于 2012-2-19 14:54 static/image/common/back.gif
fun1 的话 在其他的.C文件中(包含该.H文件) 不能调用 除非使用extern

在该文件中 只能在fun1函数下面的 ...

   谢谢回答{:5_109:}在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别

??

Mr.C 发表于 2012-2-19 19:15:59

/鸡蛋饼. 发表于 2012-2-19 19:06 static/image/common/back.gif
谢谢回答在主函数外对"函数原型"进行申明 与在主函数内对"函数原型"有什么区别

??

执行起来没什么区别。
只是有些函数代码太大,为了维护方便,必须得弄到主函数外。

/鸡蛋饼. 发表于 2012-2-19 19:39:08

Mr.C 发表于 2012-2-19 19:15 static/image/common/back.gif
执行起来没什么区别。
只是有些函数代码太大,为了维护方便,必须得弄到主函数外。

是这样呀   。。谢谢版主大大!!

ccqiji 发表于 2012-2-19 20:13:38

static说明符放在函数前说明函数作用域是文件作用域。。
别的文件无法调用
作用域是声明开始到文件末尾
声明只有在定义上方才有意义
所以你写的两个声明都没意义的
函数定义就是声明和定义。。。

仰望天上的光 发表于 2012-2-19 21:47:47

如题:
#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 22:10:42

仰望天上的光 发表于 2012-2-19 21:47 static/image/common/back.gif
如题:
#include



谢谢指导!!!!!

/鸡蛋饼. 发表于 2012-2-19 22:11:01

ccqiji 发表于 2012-2-19 20:13 static/image/common/back.gif
static说明符放在函数前说明函数作用域是文件作用域。。
别的文件无法调用
作用域是声明开始到文件末尾


谢谢指导 !!!!!

智商是硬伤 发表于 2015-8-17 07:53:41

{:7_146:}咱们码农有力量,嘿{:7_146:}
页: [1]
查看完整版本: 关于C中函数存储的问题,希望指导!