C++ 声明和定义(二)

       在不同的时段看同样的书籍会有不同的感受,思维层次不一样。并且有些你可能很肯定的东西,形成思维定式的东西,当你遇到不同见解的时候,千万别急着下结论,认为你掌握的肯定就是对的。之前你很可能对某些东西理解未透彻或者忽略掉了一些事实,举个简单的例子:对表达式sizeof(int)求值得到4,也就是说int占4个字节,那么int占32bits。这样一定是对着的吗?答案是不一定,int确实占4字节,是不是32bits这就两说,具体原因在此文中不会提及,会在下一篇关于sizeof关键字以及C++的climits库时来具体分析解释,如果有好奇宝宝在的话,先自行查阅CHAR_BIT这个符号常量去吧。从此篇文章开始作为我C++拾遗的开始(2018-6-3 mark)。

       关于声明和定义:

  •         声明和定义语句的实质性区别在于:这条语句的执行是否会为变量分配内存空间,如果分配的话,那么就是定义。有的书本中,比如<<C++ Primer Plus>>将声明分成两种,一种叫引用声明(reference declaration),其实就是C++ 声明和定义(一)中提到单纯的声明语句,变量前面加extern的那位;另外一种叫定义声明(defining declaration),  其实就是下面这个简单的例子,既是变量的声明同时又是定义。
  •         简单的例子: int var = 8; 这个简单的语句相信大家都写过成千上万遍了,觉得毫无稀奇之处。但是很多东西都是细微处见真章。具体说来这条语句包含的信息量是很大的。1. 这条语句告知了系统这儿我定义了一个变量,变量名叫var,通过var这个符号,我可以找到并访问这个变量的首地址,对这个内存地址进行存取操作,也即说明var这个符号与变量实际内存地址建立了映射关系(当然我是指这条语句被执行之后,而并非开发源代码的阶段);2. 变量的类型为C/C++内置整型int,编译器知道int在当前系统是占多少bits(关于int的长度,一般是目标计算机而言最为自然的长度,自然长度natural size是指计算机处理起来效率最高的长度,也即cpu寄存器位宽),因此会为这个变量分配相应大小的内存空间,并且有数据写入这个地址空间的时候,应该以怎样的方式去写这个内存空间的每个bit;3. 数值8告知系统,分配好地址后,往这个地址空间存入8这个值,并且这个地址是int类型,存入8 的时候,你可别按别的类型存入,如果你按字符或者其他类型存入,那编译器你就太傻逼了。

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值