官方网站后台怎样做超链接,深圳网站建设哪里好,自建站网址,网站建设玖金手指谷哥三十static用来修饰一个函数的时候#xff0c;表示的意思如下#xff1a; 1、表示该方法只在本c文件中有效。在其他c文件中无法访问这个方法。 2、static的方法的定义一般不放在.h文件中#xff0c;因为这个方法只在一个c文件中有效。一般直接将该方法定义在c文件的开头部分就可…static用来修饰一个函数的时候表示的意思如下 1、表示该方法只在本c文件中有效。在其他c文件中无法访问这个方法。 2、static的方法的定义一般不放在.h文件中因为这个方法只在一个c文件中有效。一般直接将该方法定义在c文件的开头部分就可以了。 3、一般申明这种方法用来封装一些逻辑和面向对象的private有点类似。比如我们申明一个方法为static然后申明一堆其他的方法 根据用途的不同这些方法会用不同的参数调用该static方法而这些方法不是static的所以这些方法是可以被其他文件调用的而这个 static方法封装了所有的逻辑而且只在本c文件中有效有效避免了其他文件直接方法该方法。有点面向对象的意思哦。 static关键字用来修饰一个变量的时候 1、如果该变量是全局变量即不属于任何function的一个变量那么表示该变量只能在当前的源文件中使用其他源文件不能使用extern关键字来引用这个关键字。所以其他源文件也可以定义同名的变量不影响。 2、如果在一个function中定义一个static变量表示该变量的生命周期和本c文件的声明周期一样长再次进入该function的时候该static变量的值还保持为上次修改后的结果如 Code: Select allint count() { static int result 0; result; return result;}每次进入这个count方法的时候result的值不会被重复初始化为0因为这是static变量只会被初始化一次。下次进入这个count方法result的值将会被一次次的累加。顺便提一下C中的static 1. 如果static修饰一个class member variable表示该变量和class type相关多个该class的object/instance都share这一个变量。 2. 如果static修饰一个class function member表示该函数没有this指针。其实也就是该函数和class type相关不和instance相关。由于function没有this指针就没法使用class instance中的变量只能访问一些static的变量。 如果static变量或函数不出现在class中则C Primer中明确提到对于这种和传统C相同的static的变量或函数应使用Unnamed Namespace来代替使用static。C中使用Unnamed Namespace来代替传统的static每个源文件都有自己独立的Unnamed Namespace定义在unnamed namespace中的变量或函数表示只在该源文件中有效。其他源文件不能引用和访问这些变量或函数。其他源文件也可以定义名字相同的变量或函数。 传统的C中继承过来的static全局变量或函数将来有可能不支持所以请使用unnamed space来代替。 有关Unnamed Namespace的具体内容请参考C Primer 4th Edition Section 17.3 转载于:https://www.cnblogs.com/super119/archive/2011/03/26/1996101.html