C static关键字使用时的一些技巧计算机等级考试

文章作者 100test 发表时间 2009:07:07 23:25:26
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  本文主要讲解C static关键字使用时的一些技巧,需要避免的用法。
  一、基本语法
  static的变量存在于全局静态数据区,系统自动初始化为0。在整个程序运行过程中只初始化一次,只有一个内存地址。具体还有一些细节,想必大家已经在其他书籍上看过了,这里不再多提。
  二、使用技巧
  1、在不增加其他变量的情况下,优化程序。
  先看如下代码,假设我们使用这个函数计算最大整数的大小:
  int MaxInt()
  {
  int nFunRet = 0.
  int nTemp = 0.
  while (TRUE)
  {
  nFunRet .
  if (nFunRet <. nTemp)
  break.
  nTemp = nFunRet.
  }
  return nTemp.
  }
  如果计算多次的计算机网,加入收藏!话,我们的代码可能是这样的:
  void MyFun1()
  {
  cout <.<. "MyFun1: " <.<. MaxInt() <.<. endl.
  }
  void MyFun2()
  {
  cout <.<. "MyFun2: " <.<. MaxInt() <.<. endl.
  }
  int main()
  {
  MyFun1().
  MyFun2().
  return 0.
  }
  这样实际上MaxInt函数运行了两次,我们可以肯定的是,一个程序在运行期间,最大整数大小不会变化,所以这里计算两次显得多余了。
  一般情况下,我们当然不会犯如此低级的错误,我们一般会如此写代码:
  int g_nMaxInt = MaxInt().
  void MyFun1()
  {
  cout <.<. "MyFun1: " <.<. g_nMaxInt <.<. endl.
  }
  void MyFun2()
  {
  cout <.<. "MyFun2: " <.<. g_nMaxInt <.<. endl.
  }
  int main()
  {
  MyFun1().
  MyFun2().
  return 0.
  }
  从运行结果来看,效率上去了,并没有计算两次,但为了如此功能添加一个全局变量显然不合适,如果以后还要添加诸如:最大文件链接数量,当前程序最大栈大小……,那程序的可读性就不那么好了。

相关文章


c 中被调用函数中常引用的使用计算机等级考试
关于apue中open函数计算机等级考试
计算机二级C 辅导:InternetOpenUrl函数计算机等级考试
C 空类的默认成员函数总结计算机等级考试
C static关键字使用时的一些技巧计算机等级考试
c 类对象的内存模型计算机等级考试
计算机二级C 辅导:C 回调函数用法计算机等级考试
C 常见的内存错误及其对策计算机等级考试
C _C内存耗尽怎么办计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛