命名冲突和static修饰符

来源:互联网 发布:linux系统下安装软件 编辑:程序博客网 时间:2024/04/26 07:20
  两个具有相同名称的外部对象实际代表的是同一个对象(即使用户并非本意)
 
  static修饰符是一个能够减少此类命名冲突的工具,例如:
  static int a;其含义与int a;相同,只不过a的作用于被限制在一个源文件内,而对于其他源文件,a是不可见的,如若干个函数需要共享一组外部对象,可以将这些函数放到一个源文件中,把他们需要用到的对象也都放在一个源文件中以static修饰,当然,static也运用于函数,如果函数f需要调用另一个函数g,而且只有函数f需要调用函数g,我们可以把函数f和函数g都放在一个源文件中,并且声明g为static函数
 
  static int g(int x)
  {
 /*函数体*/
  }
 
  void f()
  {
 /*其他内容*/
 b=g(a);
  }
  我们还可以在多个源文件中定义同名的函数g,只要所有的函数都被定义为static,或者仅仅只有其中一个函数g不为static,同此,为了避免可能出现的命名冲突。如果函数仅仅被同一个源文件中的其他函数调用,就声明为static 
原创粉丝点击