在C语言中, static的字面意思很容易把咱们导入歧途, 其实它的做用有三条。 ??)先来介绍它的第一条也是最重要的一条:隐藏。 当咱们同时编译多个文件时, 全部未加static前缀的全局变量和函数都具备全局可见性。 我举例来讲明。 一个是a. c, 另外一个是main. c的内容 顺序的运行后果是: 你可以会问:为何在a. c中定义的全局变量a和函数msg能在main. 其它的源文件也能访问。 此例中, 而且都没有加static前缀, 于是关于另外的源文件main. c是可见的。 例如在a和msg的定义前加上static, main. c就看不到它们了。 而不用担心命名抵触。 Static能够用做函数和变量的前缀, 关于函数来说, static的做用仅限于隐藏, 而关于变量, static还有下面两个做用。 ?)static的第二个做用是保持变量内容的耐久。 存储在静态存储区:全局变量和static变量, static能够控制变量的可见范围, 虽然这种用法不罕见, 但我仍是举一个例子。 因为全局变量也存储在静态数据区。 咱们能够一个一个地把全部元素都置0, 假设定义成静态的, 再好比要把一个字符数组当字符串来用, 但又以为每次在字符数组末尾加’\0’太麻烦。 假设把字符串定义成静态的, 就省去了这个麻烦, 因为那里本来就是’\0’。 顺序的运行后果以下 最后对static的三条做用作一句话总结。 首先static的最主要功用是隐藏, 其次因为static变量寄存在静态存储区, 因此它具备耐久性和默认值0。数组