IOS开发---C语言-㉓static和extern对函数和变量的作用

来源:互联网 发布:网络错误e404 编辑:程序博客网 时间:2024/06/06 03:40

1.外部函数:定义的函数能被本文件和其他文件访问

 1> 默认情况下所有函数都是外部函数
 2> 不允许有同名的外部函数
 

2.内部函数:定义的函数只能被本文件访问,其他文件不能访问

 1> 允许不同文件中有同名的内部函数
 

3.static对函数的作用:

 1> 定义一个内部函数
 2> 声明一个内部函数
 

4.extern对函数的作用:

 1> 完整地定义一个外部函数
 2> 完整地声明一个外部函数
 (extern可以省略,默认情况下声明和定义的函数都是外部函数)

5. 全局变量分2种:

 外部变量:定义的变量能被本文件和其他文件访问
 1> 默认情况下,所有的全局变量都是外部变量
 2> 不同文件中的同名外部变量,都代表着同一个变量

 
 内部变量:定义的变量只能被本文件访问,不能被其他文件访问
 1> 不同文件中的同名内部变量,互不影响
 
 static对变量的作用:
 定义一个内部变量
 
 extern对变量的作用:
 声明一个外部变量
 
 static对函数的作用:
 定义和声明一个内部函数
 
 extern对函数的作用:
 定义和声明一个外部函数(可以省略)

6.用static修饰局部变量的时候需要注意的是

#include <stdio.h>
/*
 static修饰局部变量的使用场合:
 1.如果某个函数的调用频率特别高
 2.这个函数内部的某个变量值是固定不变的
 */
void test()
{
    static double pi = 3.14;
    
    double zc = 2 * pi * 10;
    
    int a = 0;
    a++;
    printf("a的值是%d\n", a); // 1
    
    /*
     static修饰局部变量:
     1> 延长局部变量的生命周期:程序结束的时候,局部变量才会被销毁
     2> 并没有改变局部变量的作用域
     3> 所有的test函数都共享着一个变量b
     */
    static int b = 0;
    b++;
    printf("b的值是%d\n", b); // 3
}
int main()
{
    for (int i = 0; i<100; i++) {
        test();
    }    
    test();    
    test();    
    test();    
    return 0;
}
0 0
原创粉丝点击