一级棒(Eachfun)
一级棒 - 读书笔记 - C++ Primer - extern的困惑
RSS订阅
extern的困惑
发表时间:2006-06-24 00:51:01 关键词:C++,MFC,VC,Primer,编程,教程,读书

  extern用来告诉程序:你不用为我的变量开劈内存空间,你只要知道这个变量别处已经声明过了。所以,我总是在程序包含多个CPP文件时才这样用:
  1、在某一个CPP文件中直接定义变量,如int i = 0;
  2、其它CPP文件中声明变量,如extern int i;
  但是,书中介绍exturn还可以用来定义,如:extern double pi = 3.1416;特点是该extern语句包含变量的初始化。
  我觉得C++标准这样做有些多余,而且增加了出错的可能性。因为“extern double pi = 3.1416;”完全可以用“double pi = 3.1416;”来代替,这样做可以让定义与声明划清界线。毕竟定义只能有一次,而声明可以无数次。如果没有这个特性,可以让程序员简单记为“不带extern的只能有一次,带extern的可以有无数次,而且extern同时不能指定初始值。”这一特性的支持,使原本简单的规则变得复杂,但没有带来灵活(众所周知,C++的复杂是以高度灵活为补尝的)。
  这个段落还让我认识到了我以前使用extern的不足。我以往在同一个CPP文件中只使用一次extern,所以我往往是在文件头部用extern语句来声明一下变量,这样做虽然没有什么错,但却会导致上下翻查:有时在文件的某一处用到变量时,想看一下它的声明,不得不把滚动条拖到顶上去查看。如果在用到它的段落开头处再声明,明显比顶部声明要好一些。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!