//
// 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;
}