CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

请教:全局函数和静态函数 有什么区别?

楼主flyingfishno1(飞鱼)2005-03-10 15:10:41 在 C/C++ / C语言 提问

一道面试题:说出全局函数和静态函数的区别,可惜偶没有答出来。 问题点数:10、回复次数:15Top

1 楼kobefly(科比--网络学习中)回复于 2005-03-10 15:13:05 得分 4

静态函数是文件作用域的  
  只能在本文件内有效  
   
  全局函数可以被同一工程的别的文件使用  
  Top

2 楼flyingfishno1(飞鱼)回复于 2005-03-10 15:39:56 得分 0

除了作用域不同,还有什么不同?Top

3 楼Rudy_zhuang(风筝)回复于 2005-03-10 15:48:45 得分 1

没什么不同。就是加了static修饰的函数的可见范围只在本文件内而已。Top

4 楼Rudy_zhuang(风筝)回复于 2005-03-10 15:50:15 得分 1

不过从编程习惯来看,对于那些确定不会被其他文件使用的函数,用static修饰比较好,从连接的角度,可以减低程序的耦合度。Top

5 楼t0h(t0h)回复于 2005-03-10 15:50:33 得分 0

静态变量要注意  
  void   test123(void)  
  {  
  static   int   i=0;  
  i++;  
  cout<<i<<endl;  
  }  
  i会一直递增     而不是每次调用test123     i都是1Top

6 楼lovelylulu(forever)回复于 2005-03-10 16:00:44 得分 0

静态函数是程序初始化的时候   就已经调用了  
  所以里面不能使用那种全局变量什么的  
   
  static   int   function()  
  {  
        return   0;  
  }Top

7 楼uselessman(没用的阿吉)回复于 2005-03-10 16:07:08 得分 0

与全局函数相对应的是哪种函数?局部函数?Top

8 楼voidR(荣耀)回复于 2005-03-10 16:16:05 得分 0

在生命周期是一样的。  
  作用域不同。  
  同意:kobefly(科比---开始学习c++!)的观点Top

9 楼Rudy_zhuang(风筝)回复于 2005-03-10 18:17:48 得分 0

回复人:   lovelylulu(forever)   (   )   信誉:100     2005-03-10   16:00:00     得分:   0      
     
     
        静态函数是程序初始化的时候   就已经调用了  
  所以里面不能使用那种全局变量什么的  
   
  static   int   function()  
  {  
        return   0;  
  }  
       
     
  -------------------  
  这样说有根据吗?Top

10 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-03-10 20:25:52 得分 0

关注  
  upTop

11 楼21cnbao(月影孤鸿)回复于 2005-03-11 00:37:49 得分 0

从来没有听说过还有个全局函数,在C语言里,函数分两类:extern和static,如果是static,则函数不参与多文件的连接,如果是extern则参与多文件的连接。一般extern修饰的函数是本模块对其他模块提供的接口,static则是隐藏于模块内部的函数。Top

12 楼GeminiXXXCC(吕布)回复于 2005-03-11 00:47:22 得分 4

C++中全局函数是不属于任何类的,它是相对于类的成员函数而言.  
  静态函数是类的成员函数,它只能访问类的静态变量,跟类的具体对象无关.Top

13 楼GeminiXXXCC(吕布)回复于 2005-03-11 00:50:13 得分 0

在C中static函数叫内部函数,也有成为静态函数的.只能供本文件使用.  
  extern一般称为外部函数,extern关键词可省略.Top

14 楼galanz(微小就是永恒)回复于 2005-03-11 11:38:03 得分 0

mark,Top

15 楼yc0188(守护瓶(萍))回复于 2005-03-11 11:39:36 得分 0

静态函数是文件作用域的  
  只能在本文件内有效  
  全局函数可以被同一工程的别的文件使用  
  Top

相关问题

  • 关于全局函数及静态析构函数和静态析构函数的问题
  • 静态函数和非静态函数的区别是什么?为什么要用静态函数呢?
  • 请问全局函数和静态函数各有什么优缺点?
  • 静态成员函数与一般成员函数有什么区别?怎样定义静态成员函数?
  • 全局静态变量与全局变量的区别?
  • 全局变量和全局静态变量有区别吗?
  • 全局函数
  • 静态成员函数和成员函数有什么具体的区别?
  • 请问一下,静态函数和普通函数有什么区别?谢谢!
  • static声明的全局函数和不加static声明的全局函数有什么区别?谢谢!

关键词

  • 函数
  • 文件
  • 静态
  • 全局
  • 区别
  • static修饰
  • 使用

得分解答快速导航

  • 帖主:flyingfishno1
  • kobefly
  • Rudy_zhuang
  • Rudy_zhuang
  • GeminiXXXCC

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo