变量定义和变量声明的区别

参考原文
变量声明:编译器被通知变量存在,不用为变量申请内存单元
变量声明包含变量标识符,变量类型,extern修饰 这些信息。不管是新建类型,对象,函数声明,声明是编译器所需要的,声明告诉编译器需要接受对这个标识符的引用。声明有如下形式。

externint bar;
externint g(int,int);
// extern can be omitted for function declarations,函数申明可以省略
double f(int,double);
// no extern allowed for type declarations,对于类型声明省略extern也是行的
extern class foo;

变量定义:编译器为变量申请内存,就是变量定义。
包含变量类型,变量标识符这些信息;定义的本质是实例化或者说实现这个标识符,表现就是在内存中申请一个跟类型等量空间大小的内存空间。变量定义是连接器所需要的,连接器通过变量定义来引用到他们的实体内存空间。下面这些是上面声明的定义:

int bar;
int g(int lhs,int rhs){return lhs*rhs;}
double f(int i,double d){return i+d;}
class foo {};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值