美文网首页
Static关键字

Static关键字

作者: 木鱼_cc | 来源:发表于2018-05-22 13:12 被阅读0次

静态变量是指内存位置在程序执行期间一直不改变的变量,一个代码块内部的静态变量只能被这个代码块内部访问。
Static int I = 0;//定义了一个静态变量
静态变量在程序刚加载到内存的时候就出现,所以和定义静态变量的大括号无关,一直到程序结束的时候才从内存消失,同时静态变量的值只初始化一次。

-------------------------b.c中-------------------------
int b = 1;//b是全局变量,在所有文件中都可以访问
static int c = 2;//c只能在b.c这个文件内部作为全局变量使用,在其他文件中不能使用
int get_c()//这个函数是全局的
{
    return c;
}//通过这个函数访问c!

static void test(){
   printf("b.c test\n");
}

void set_c(int n)
{
     c = n;
}

-------------------------a.c中-------------------
#include <stdio.h>
int a = 0;

extern int b;
extern int c;//这里不影响,但取不到b.c中的c
void func()
{
   a = 1;
}
int get_c();//声明一个函数
void set_c(int n);
static void test(){
   printf("a.c\n");
}
int main()
{
     test();
     func();
     printf("%d\n",a);
     printf("b = %d\n",b);
     set_c(100)
     printf("c = %d\n",get_c());
     return 0;
}

gcc -o a a.c b.c执行通过没问题!!

1.因为全局变量的名字是不能相同的,这样会带来一个什么问题?
因为一个项目往往是多个人写的,每个人都定义自己的全局变量,最后代码合并的时候会出错。
但static的全局变量在不同的文件中名字是可以相同的

2.在C语言中函数默认都是全局的,使用关键字static可以将函数声明为静态,
函数定义为static就意味着这个函数只能在定义这个函数的文件中使用,
在其他文件中不能调用,即使在其他文件中声明这个函数都没用。
对于不同文件中的staitc函数名字可以相同

相关文章

  • OC中static、const、extern关键字理解

    static关键字 static关键字用于修饰变量。 static修饰局部变量当使用static修饰局部变量时, ...

  • static关键字

    Static关键字概述 static(静态)关键字可以用于修饰变量、方法和代码块。我认为static关键字的主要用...

  • 【Java】关键字

    一、 static关键字 static关键字的总结: static关键字 可以再没有创建对象的时候进行调用类的元素...

  • Java学习Day03

    今日学习内容总结 Static关键字 Arrays类 Math类 继承 Static关键字 一旦用了static,...

  • java基础-day11-static关键字

    static关键字和接口 1. static关键字【重点】 1.1 static修饰静态成员变量 1.1.1 为什...

  • C语言中的static关键字

    @TOC C语言中的static关键字 static 关键字,意为静态。 static 变量 特性:全局变量在函数...

  • Static关键字

    C语言中的static关键字和Java的static关键字意义不一样。 1 用static修饰函数 static用...

  • C基础知识

    基础问题 1.static关键字和const关键字。 static: 作用于变量时:用static声明局部变量--...

  • 13.面向对象进阶—静态关键字static

    面向对象进阶 静态关键字static static关键字的作用,修饰成员变量的用法 static是静态的意思,可以...

  • Java学习13:static关键字,this关键字

    static关键字 static翻译为“静态的”。所有static关键字修饰的都是类相关的,类级别的。所有stat...

网友评论

      本文标题:Static关键字

      本文链接:https://www.haomeiwen.com/subject/nguhjftx.html