static修饰全局变量
static(限离出境)
#include "stdafx.h"
//static修饰后的全局变量比起没加修饰的 实始化没变,作用域改变 生命周期没变
//作用域 限制全局变量为本文件内的全局变量,也就是限制了其外延性(限制了extern)
// 尽量少用 全局变量(不加static修饰的),带来命名污染。除非专业的人员来管理
// 本文件内的全局(加static修饰的),还是可以用的,并且,还经常使用。
static int global = 100; //加static后相当于本文件内的全局变量(不会引发命名污染问题)
void func();
int _tmain(int argc, _TCHAR* argv[])
{
func();
return 0;
}
void func()
{
printf("global=%d\n", global);
}
其他文件中的外延性限制
#include <stdio.h>
//extern int global ; //如果上一个c文件中的 global变量前面
//加static修饰了,则不能使用extern来使用
static int global = 50; //俩种本文件内的全局变量不发生冲突
//也就是这个.c里面的global不会和上个.c里面的global冲突
void foo()
{
printf("globle=%d\n", global);
}