int g = 1000;//外链接性
static int a = 50;//内链接性
void func(int n)
{
static int count = 0;//无链接性
}
#include<iostream>
int x;//零初始化
int y = 5;//常量表达式初始化
long z = 13*13;//常量表达式初始化
const double pi = 4.0*atan(1.0);//动态初始化
c++11新增了constexpr关键字。这增加了创建常量表达式的方式。double d;//定义声明,分配空间
extern int i;//引用声明,不分配空间
extern char c = 'a';//定义声明,分配空间
// file1.cpp
//定义变量
extern int cats = 20;
int dogs = 22;
int fleas;
// file2.cpp
//在其他文件中使用extern声明
extern int cats;
extern int dogs;
// file3.cpp
//在其他文件中使用extern声明
extern int cats;
extern int dogs;
extern int fleas;
const char * const months[12] =
{
//...
}
//file1
int errors = 20;
//file2
int errors = 10;
//该代码将导致失败,因为违反了单定义规则。
//file1
int errors = 20;
//file2
static int errors = 10;
//该代码将成功,内部变量将隐藏常规外部变量
struct data
{
char name[10];
mutable int accesses;
}
原文:https://www.cnblogs.com/yangzixiong/p/11973917.html