栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++从精通到入门(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++从精通到入门(一)

前言

首先解释下为什么会有这个标题。

c++这门语言,在20世纪80年代由Bjarne Stroustrup在贝尔实验室发明。到2020年c++20版本的发布,中间经历了五个c++标准,分别是c++98、c++03、c++11、c++14、c++17。

然而大部分人对c++的了解,还停留在c++98或者c++03上。然而就对于这两个版本而言,想要说的上精通谈何容易?更不必说后面的三个标准。

网上有这么一个段子:

面试官:“9 号,xxx,在吗?”

我:“在在在!!”

面试官:“来,跟我走”。

到了面试的屋子。面试官微笑让我坐下。

面试官:“哦,xxx。看你的简历上,写的是……唔……精通 C++?”

我:是的

我心想,这 HR 还不好糊弄吗?

面试官:“哦,桌子上有笔和纸,先写一个模板元编程实现的编译期堆排序吧。嗯……五分钟够了吧?我开始计时了哦。”

WTF??? 我的心咯噔一下,顿时乱了手脚,却也只能装模做样地在纸上写什么 template、typename ……

面试官:“到时间了,我看看。嗯……看起来你不是太懂模板呀。问一道简单一点的吧。”

卧槽,终于。。。简单的来了!!!我的心里又有了一丝希望。

面试官:“你看我这有一段程序”,她把她的 MacBook 转到我这边来,“能看清吧?但是这段程序在我这台电脑上的 Clang 3.7 编译会 ICE。你能帮忙修一下 Clang 的 bug 吗?十分钟可以吗?”

我:“这个……不太熟 Clang……” 

面试官:“那你对哪个 C++ 编译器熟悉呢?”
我:“MSVC!”

我想都没想就脱口而出,但是听到下面的话我想咬舌自尽。。。。。

面试官:“哦,MSVC 啊,我开一下虚拟机……嗯……,好了。来看看,这段程序会导致 MSVC ICE,你看看 MSVC 哪里有 bug?哦对了,MSVC 不开源,简单逆向一下就好啦……”

我:“这个……不太会。”

面试官:“这个也不会?”

HR 显得很失望,感觉脸都变了。。。。。我开始瑟瑟发抖

面试官:“那看看这个程序吧,在 GCC 6.2 和 Clang 3.7 跑出来的结果不一样,

1. 你说是标准 wording 的失误,还是编译器实现的问题,还是其它的可能性呢?

2. 如果是 wording 失误,或者是 unspecified/UB/impl defined,请指出标准哪节说的,

3. 如果是编译器的错误,请说说哪个编译器实现错了,错在编译器源码的哪里?

嗯……改就算了,看你也不太会改编译器……哦对了,标准草案的 PDF 应该不需要吧?这种东西应该背差不多了吧?

听着这连珠炮弹式的发问,只能是从懵逼到更懵逼。。。。。

以上只是c++的一隅。当你号称自己精通c++的时候,那对于上面的问题,是否能全部回答出来?所以说,没有十几年、甚至几十年如一日的使用、学习c++,谈不上精通。

本文系列,只是讲解c++的基本知识,因本人能力有限,其中的示例程序也会尽量使用“现代c++”语法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号