码迷,mamicode.com
首页 > 编程语言 > 详细

【学习笔记】【C语言】static和extern对变量的作用

时间:2015-07-05 19:51:08      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

 1.全局变量分2种:
 外部变量:定义的变量能被本文件和其他文件访问
 1> 默认情况下,所有的全局变量都是外部变量
 1> 不同文件中的同名外部变量,都代表着同一个变量
 
 内部变量:定义的变量只能被本文件访问,不能被其他文件访问
 1> 不同文件中的同名内部变量,互不影响
 
 static对变量的作用:
 定义一个内部变量
 
 extern对变量的作用:
 声明一个外部变量
 
 static对函数的作用:
 定义和声明一个内部函数
 
 extern对函数的作用:
 定义和声明一个外部函数(可以省略)

2.代码

main.c

 1 #include <stdio.h>
 2 
 3 void test();
 4 
 5 // 定义一个外部变量
 6 
 7 //int a; 这么多个a都是代表同一个a
 8 //int a;
 9 //int a;
10 //int a;
11 //int a;
12 
13 
14 // 定义一个内部变量
15 static int b;
16 
17 // 声明一个外部变量
18 //extern int a;
19 
20 int main()
21 {
22     //b = 10;
23     
24     //test();
25     
26     extern int a;
27     a = 10;
28     
29     /*
30     a = 10;
31     
32     test();
33     
34     printf("a的值是%d\n", a);*/
35     
36     return 0;
37 }
38 
39 
40 int a;

one.c

 1 #include <stdio.h>
 2 
 3 int a;
 4 
 5 static int b;
 6 
 7 void test()
 8 {
 9     printf("b的值是%d\n", b);
10     
11     /*
12     printf("a的值是%d\n", a);
13     
14     a = 20;*/
15 }

static与局部变量

 1 #include <stdio.h>
 2 
 3 /*
 4  static修饰局部变量的使用场合:
 5  1.如果某个函数的调用频率特别高
 6  2.这个函数内部的某个变量值是固定不变的
 7  */
 8 
 9 void test()
10 {
11     static double pi = 3.14;
12     
13     double zc = 2 * pi * 10;
14     
15     int a = 0;
16     a++;
17     printf("a的值是%d\n", a); // 1
18     
19     /*
20      static修饰局部变量:
21      1> 延长局部变量的生命周期:程序结束的时候,局部变量才会被销毁
22      2> 并没有改变局部变量的作用域
23      3> 所有的test函数都共享着一个变量b
24      */
25     static int b = 0;
26     b++;
27     printf("b的值是%d\n", b); // 3
28 }
29 
30 int main()
31 {
32     for (int i = 0; i<100; i++) {
33         test();
34     }
35     
36     
37     test();
38     
39     test();
40     
41     test();
42     
43     
44     return 0;
45 }

 

 

【学习笔记】【C语言】static和extern对变量的作用

标签:

原文地址:http://www.cnblogs.com/dssf/p/4622774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!