static和extern

//
//  main.c
//  static和extern
//
//  Created by admin on 16/4/1.
//  Copyright © 2016年 jin. All rights reserved.
//

#include <stdio.h>

/**
 static:
    对局部变量
        1.延长变量生命周期,从执行开始到程序退出
        2.定义的这行代码只会执行一次
        3.不会改变变量的作用域
 */
void test1()
{
    static int num = 1;
    num++;
    printf("%i\n",num);
}
int num = 1;
/**
 extern:
    对局部变量
        1.表面当前的变量使用的是全局变量
 */
void test2()
{
    extern int num;
    num++;
    printf("%i\n",num);
}
/**
 全局变量:
    1.外部变量:在所有的文件中都可以被访问
    2.内部变量:只能在当前文件中被访问
 static:声明一个内部变量
 extern:完整声明一个外部变量(全局变量默认就是外部变量),如果使用extern初始化一个变量,则系统不会自动再初始化这个变量,在整个程序中都不能重复定义

 函数:
 1.外部函数:在所有的文件中都可以被访问
 2.内部函数:只能在当前文件中被访问
 static:声明一个内部函数
 extern:完整声明一个外部函数(函数默认就是外部函数),如果使用extern初始化一个变量,则系统不会自动再初始化这个变量,在整个程序中都不能重复定义

 */
int main(int argc, const char * argv[]) {
    /**
    test1();// 2
    test1();// 3
    test1();// 4
    test1();// 5
     */
    test2();// 2
    test2();// 2
    test2();// 2
    test2();// 2
    return 0;
}

标签: c

添加新评论