前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用的3个C++小技巧

常用的3个C++小技巧

作者头像
CPP开发前沿
发布2021-12-22 16:52:30
1860
发布2021-12-22 16:52:30
举报
文章被收录于专栏:CPP开发前沿CPP开发前沿

敲黑板:这些技巧在书本上看不到,所以它有点特别,当然也可以不看,看了呢也没坏处却可以显示你的逼格。

1、头文件是引用<iostream.h>还是<iostream>?

编码中依旧有程序员依旧使用<iostream.h>而不是<iostream>库。实际上,这两个库是有区别的:

首先,针对用.h作为标准头文件已经明确不推荐使用。

其次,在功能方面,<iostream>包括IO类,且同时支持窄字符和宽字符;而<iostream.h>却只支持以char为导向的流。

再次,在C++的iostream接口标准进行了调整。<iostream>的接口与实现与<iostream.h>存在差异。

最后,<iostream>组件声明于std命名空间中,而<iostream.h>组件是全局性的。两者混合使用存在一定的风险。需要谨慎。

2、逗号分割表达式

逗号表达式可能包含一个或多个用逗号分隔的子表达式,例如:

代码语言:javascript
复制
if(++x, --y, cin.good())

上面的if表达式中,每个语句都会被执行到,但是整个if的条件实际上是以第三个表达式值为if的条件值。cin.good()默认值为1,只有当输入值和定义变量类型不一致的时候变为0。在循环语句中情况也是一样。如:

代码语言:javascript
复制
while( ++i, --j)
{    
  ;
}

整个while循环只有当j=0的时候才会停止。

3、在main函数之前运行代码

通畅全局对象是在程序开始之前之构造的,这个函数也会在main()开始之前返回。如:

代码语言:javascript
复制
class Logger
{
public:  
  Logger()
  {    
      activate_log();
  }
  void  activate_log()
  {
      cout<<"hello"<<endl;
  }
};
Logger log;
int main()
{  
    record * prec=read_log();
}

这个函数在main之前就被执行并进行了返回。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CPP开发前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档