当前位置:首页 > 每日看点

为什么我觉得C/C++好简单?

卡卷网2年前 (2024-12-02)每日看点323

很有可能是你没有见过生产级别的代码,甚至可能还不知道去哪里看。github上面有chrome/mysql/unreal engine之类的一大堆优秀软件的代码,个个都是就几百万行以上,你去看看自己能看懂几行,然后再来说简单不简单。

如果看完之后还觉得简单,那几百万/年的工作就是闭着眼睛找了。

从很远的地方看珠峰,就一个小山坡,感觉要爬上它易如反掌。距离越近,才会觉得越难。

编程也一样,你觉得它简单的时候,其实是因为离真正的编程还很遥远。

C语言语法级别的难,第一次见到的时候一头雾水的是这个:

send(to, from, count) register short *to, *from; register count; { register n = (count + 7) / 8; switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); } }

do while和switch嵌套,其实是一种古老的发明:

en.wikipedia.org/wiki/D

算法级别的难,举个例子,Quake 3中求反平方根的算法,没人解释基本看不懂:

float InvSqrt (float x){ float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; }

C++级别的难比C更多,数不胜数,当年让我觉得C++强大无比的是这个:

assert((o-----o | ! ! ! ! ! ! ! o-----o ).area == ( o---------o | ! ! ! o---------o ).area );

它其实是使用了一个库,在这里:

Multi-Dimensional Analog Literals

编程其实是一种技术活,类似于绘画、雕刻、篆刻、制陶烧瓷之类的传统工艺,只是它的载体变成了计算机。学习过程是类似的,无论智商多高,都无法跳过大量的长时间的练习和采坑摸索,任何一个人都不可能在两个月内从编程新手变成高手。

随手一发,没想到那么多人看。评论区说题主说的是C/C++语言,不是逻辑。好吧,要说C++语言本身有多难那就更简单了。

考察C++掌握程度的资源非常多,例如这个,打开看看,很有可能第一题你就不会:

cppquiz.org/

可以关注这个人的推,他经常提一些C++挑战性的问题:

twitter.com/shafikyaghm

还有一些常见的C++黑话,主要是一些C++编程技巧,有些甚至是C++独有的:

en.wikibooks.org/wiki/M

第一个链接里面只有几百道题,我这么说吧,知乎上懂C++的人一定可以出一千道甚至是一万道C++的题目是才学2个月C++的人答不出来的,而即使对学20年C++的人,出一百道答不出来的也没多大难度。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/2603.html

分享给朋友:

相关文章

2024,java开发,已经炸了吗?

炸的透透的了,坐标南京。 一月底,一个好哥们,双休朝九晚六不加班18K,被裁。 入职不到两年,算是工资和年终奖才赔了6.5W左右。 上周五新公司入职,周六开始加班。现在每周134加班到晚上八点,好像薪资还不如以前高。三月上旬,另一个好哥们,…

你每天用来涨知识的手机应用程序有哪些?

你每天用来涨知识的手机应用程序有哪些?

经过深度使用和测评, 从100个APP中选出的这35个超实用的app,每一个都是最硬核最有料的涨知识神器!每天打开看看,能让你提神醒脑,眼界大开,成为朋友聚会上的话题王者! 先放上全部APP目录,有新闻资讯类、英语学习类、读书类、影视类…

提升自己最快的方式是什么?

提升自己最快的方式是什么?

1. 稻盛和夫说过: “改变自己最快的方法就是做自己害怕的事,不敢做的事,认为自己做不到,觉得不可能的事。如果在自己的舒适区待久了,就会丧失斗志,如果想快速的改变,可以坚持去做一些对自己有益的事。 2. 早睡早起,坚持运动 保持旺盛的精力,…

有哪些是你用上了mac才知道的事?

用上了高端的Mac(已退货)才知道:原来文件夹里面的文件,你看到是8个,其实可能有12个。其中3个图标重叠在一起了,另外一个被拖动到屏幕外面了。 用上了高端的Mac(已退货)才知道:原来鼠标灵敏度有问题是因为系统内置了鼠标加速度,只能用控制…

MacOS真的比Windows流畅吗?

我现在公司配的机器,配置是绝对的大古董了 惠普z230sff薄塔 cpu只是个4770,没错不是4790k,4770全核睿频只有3.8g 显卡更是古董,k600,已经结束驱动更新支持了,显存仅1g,跑分跑不过13代uhd核显 内存是加到16…

离线可否搭建 GitLab 环境?

离线可否搭建 GitLab 环境?

背景:为什么要使用GitLab CI/CD? 统一工作流程:GitLab CI/CD 为开发、测试和运维团队提供了一个统一的工作流程。开发人员提交代码后,测试人员可以清楚地看到代码的构建和测试情况,运维人员也可以了解软件的部署进度。例如,在…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。