范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

EffectiveC读书笔记条款1

  条款1:尽量用 const 和 inline 而不用#define
  这个条款最好称为:"尽量用编译器而不用预处理"。因为#define 经常被认为好像不是语言本身的一部分。这是问题之一。
  另外,再看下面的语句:#define PI 3.1415926
  1.编译器永远看不到 PI 这个符号名,因为在源码进入编译器之前,它会先被预处理程序去掉,于是 PI不会加入到符号列表中。
  2.如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息会指向
  3.1415926,而不是PI。
  3.这个问题也会出现在符号调试器中,因为PI不会出现在符号列表中。
  解决方案: 不用预处理宏,定义一个常量。 const double PI = 3.1415926;
  但有两个特殊情况要注意。 :定义指针常量时会有点不同
  因为常量定义一般是放在头文件中(许多源文件会包含它),除了指针所指的类型要定义成 const 外,重要的是指针也是经常要定义成 const。例如:    const char * const AUTHOR_NAME = "Scott Meyers"; //Scott Meyers是本书的作者名
  关于 const 的含义和用法,特别是和指针相关联的问题,参见条款 21。定义某个类的常量一般也很方便,只有一点点不同。
  要把常量限制在类中,首先要使它成为类的成员;为了保证常量最多只有一份拷贝,还要把它定义为静态成员。class GamePlayer {        private:   /*   *1.只有static const int 3个关键字同时出现时才能在声明时初始化。   *2.static const double NUM_TURNS 声明常量时,只能在定义时初始化(cpp文件中)。   */       static const int NUM_TURNS = 5;           int scores[NUM_TURNS];                   ... }; 还必须在cpp文件中定义类的静态成员。const int GamePlayer::NUM_TURNS;  //cpp文件中进行常量定义
  注意: 上面 GamePlayer::scores 数组的声明(编译过程要确定数组的大小),如果有些编译器不支持类内进行整型类常量初始化,我们就需要使用枚举enum来替代const。class GamePlayer  {        private:       enum { NUM_TURNS = 5 };                                     			int scores[NUM_TURNS];          ... };
  回到预处理的话题上来。另外一个普遍的#define 指令的用法是用它来实现那些看起来像函数而又不会导致函数调用的宏。典型的例子是计算两个对象的最大值:    #define max(a,b) ((a) > (b) ? (a) : (b))
  这个语句有很多缺陷,光想想都让人头疼,甚至比在高峰时间到高速公路去开车还让人痛苦。无论什么时候你写了像这样的宏,你必须记住在写宏体时对每个参数都要加上括号;否则,别人调用你的宏时如果用了表达式就会造成很大的麻烦。
  解决方案:  inline int max(int a, int b) { return a > b ? a : b; }
  但这个版本的 max 却只能处理 int 类型。进一步的解决方案是使用模板。    template     inline const T& max(const T& a, const T& b)     { return a > b ? a : b; }
  因为不知道 T 的类型,返回时传引用可以提高效率(见条款 22)。
  提醒一点是,在你打算用模板技术自己造轮子时,先检查下标准库(见条款 49),因为很多功能都已经是C++标准库的一部分了,max早已经存在于标准库中。

女神节拒绝俗物vivoS9切入的自拍与工业设计更得女神心话说这年后的国内手机市场真可谓是百花齐放,让之前正考虑换机的我一度眼花缭乱。不过还好,只要能确定下自己的使用习惯和购机目的,选择一部适合于自己的手机也并非难事,而这次我选择的vivvivoS9的品质与自拍体验,足够小米11青春版学一年?在如今互联网成为主流购物方式的今天,越来越多的人开始从手机小白变成了发烧友。得益于信息量的增加,硬件参数拍照对比使用功能等方面成为消费者的主要比较项,但唯有一项必须要眼见为实,那就别再费尽心机去思考如何自拍了!vivoS9实测有点儿东西对于追星党的我来说,每一位当红艺人的一举一动都会引起我注意,尤其是真实度较高的自拍照中往往隐藏着许多内容。但话说回来,人家明星无论是街边游走还是居家日常,只要是敢晒出来的自拍照都是vivoS10Pro上手体验,让两年没晒过自拍的我找回了自信?对于大多数人而言,自拍手机一词貌似已淡出视野,如今甚至已很少有手机厂商拿自拍体验说话。但即便如此,日常生活中的我们依旧离不开自拍这项基本操作,无论是斗图晒圈秀恩爱,还是视频通话线上苏式新国货,谁才是出圈的No。1?品牌新事文阅川江苏自古就是江南富庶之地,但近些年,它的出圈,却是因为硬核。江苏13个地级市,各个都很强,全部都是全国百强城市。连GDP排名在江苏垫底的宿迁,随便放到国内任何一个省里,都能轻2021胡润百富榜地产业陷滑铁卢,新能源成赢家时代造就产业,也造就个人。口述吴晓波我在2000年前后认识胡润的时候,他还是单枪匹马刚刚闯进中国商业圈的外国人。他在1999年首创百富榜,那时的胡润百富榜与其说是一份权威准确的财富金庸逝世三周年,他的作品还在等待关键一跃同读一本书经典性需要作家去世后两代人左右才能证实。哈罗德布鲁姆文六神磊磊转眼,金庸先生离开我们已经有3年了。我们缅怀先生,也缅怀先生的作品。如果说近几年来互联网上有哪位金庸作品的解读大神,那小米的55W闪充够用吗?iQOO7直接标配120W超快闪充之前就有人说,高通骁龙888的正式发布,将吹响国内智能手机市场的集结号。如今看来,这样的说法很是贴切。就在昨晚,小米11正式发布。该机不仅带来了骁龙888处理器,同时也是2021年仅13的年轻人没有负债?这是个伪数据没必要谈债色变。文巴九灵前几天,小巴在知乎上看到一个关于年轻人普遍负债的热点话题数据显示,仅13的年轻人没有负债,90后占据消费贷半壁江山,年轻人的负债率为何如此之高?目前,该问题iPhone13动手玩iPhone12S这个名字更适合它伴随转场动画以及加州著名风景和标志性建筑,MarlenaShaw那首经典的CaliforniaSoul响起,苹果秋季发布会终于到来,这可能是整场发布会最精彩的部分,后面像例行公事一大数据能给企业带来什么?这些你得知道现在很多企业都开始使用大数据,数据在企业中是个很重要的东西,支撑着企业的正常运转,能让企业通过数据,及时的转换策略。今天,我们就来看看大数据能给企业带来什么?一起来看看吧!对于企业
你真的需要带鱼屏吗?小牛跟你来说一说带鱼屏的优缺点Hello大家好,我是兼容机之家的小牛。自从电脑DIY爱好者中兴起了一股桌面风后,带鱼屏显示器仿佛已经成为了后浪标配,自己的电脑桌上没有一台219的显示器甚至都没资格出来秀了,小牛手机充电口竟有这么多门道?便宜的只能充电,高级的还能接屏幕Hello大家好,我是兼容机之家的小牛。昨日,联想拯救者手机官方发博称新款的联想拯救者电竞手机Pro将会搭载两个全功能TypeC接口,并且展示了联想拯救者电竞手机Pro外接显示器键华为P50Pro的屏幕有多厉害?1440HzPWM调光,打破OLED伤眼定律兼容机之家小牛带你发现更多新潮数码资讯。华为P50Pro已于近日正式发布,但是由于美国制裁,导致华为P50Pro无法用上5G芯片。虽然华为P50Pro没有带来5G,但是在手机的其他小米MIX4华为P50,6款屏下镜头新机盘点,其中一款已经量产Hello大家好,我是兼容机之家的小牛!自从2020年中兴量产了全球首部屏下前摄的机型A20之外,手机市场此后再无此类产品。但是各位友商并没有放弃研发屏下摄像头的手机,毕竟谁要是把PS5芯片残次品太多,AMD推出锐龙4700S回血,型号竟已多达4款兼容机之家小牛带你发现更多新潮数码资讯。7月28日,索尼宣布其游戏主机PS5在全球范围内的销量已经突破一千万台!在全球芯片产能如此吃紧的情况下,取得如此的成绩确实优秀。众所周知,PWindows11家庭版专业版有什么不一样?要不要升级成专业版呢兼容机之家小牛带你发现更多新潮数码资讯。各位的电脑现在用的是什么系统呢?是否已经用上了Windows11呢?Windows11作为目前最新的Windows系统,想必有很多玩家对他还拳打英特尔脚踢英伟达,AMD推出超威卓越平台,配RX6000M系列显卡兼容机之家小牛带你发现更多新潮数码资讯。昨日ChinaJoy2021展会上,AMD正式宣布了AMD游戏本设计框架AMD超威卓越平台,英文名为AMDAdvantage。和目前市场上主XBOXSeriesX芯片流出,化身AMD4700S,竟被寨厂做成电脑卖兼容机之家小牛带你发现更多新潮数码资讯。近日,一款搭载AMD4700S处理器的ITX主机悄然出现在了深水宝上,生产厂家为著名的笔记本寨厂麦某本。AMD4700S这个型号很多一听可能RX580用了两年,商家发短信称显卡存在缺陷,全部召回更换1050Ti兼容机之家小牛带你发现更多新潮数码资讯。虚拟货币挖矿热潮已经持续了近半年之久,显卡价格的疯涨一度让数码玩家出圈,甚至CCTV财经频道都有在报道显卡暴涨。不过还是有很多玩家对目前的显撼讯RX6700XT做工感人,闹出大笑话,显卡导热垫贴膜竟然都没撕掉兼容机之家小牛带你发现更多新潮数码资讯。夏日炎炎,新买的显卡温度分分钟90度,你可能会疑惑是不是机箱风道出现了问题,其实可能是你显卡散热器的膜都没撕掉。近日reddit论坛上的一位英伟达RTX3080Ti将于5月26日开卖,12GB显存限制挖矿,7999元起售兼容机之家小牛带你发现更多新潮数码资讯。尽管目前RTX30系列显卡供不应求,但是英伟达并没有等着坐吃山空,还是十分积极的研发新显卡。经历多番波折的RTX3080Ti也终于要落地发售