现代的 C/C++的特性怎样快速学习

2023-10-11 14:03:01 +08:00
 msmmbl

本人最早还是大学课堂时候接触了 C 语言。

工作后主要还是使用 java 、php 、js 、go 、python 这类高级语言,这些高级语言每个版本升级看看有哪些新特性,慢慢的也就跟上了,也没特别去学习。

身边没有写 C 的工作环境,C 的话主要还是玩兴趣的时候写写 arduino 、stm32 时候用用,也没用到什么高级特性,大学那套感觉够用。直到最近开始玩 soc 、linux 驱动这些的时候,发现了里面的 c 很多语法都好像既熟悉又陌生。还有用 esphome 写自定义 component 的时候遇到了 template ,也是不大熟悉。总感觉自己懂得 C 还是老的一套,不太适应新的环境了。

想了解下,现在 2023 年 10 月份了,如果想要快速的学下最新的 C 或者 C++,了解他们的新特性,而不是从头开始(就是数据类型,运算符这种已经熟知的东西了),应该从哪方面入手。

1721 次点击
所在节点    C++
12 条回复
lyyQAQ
2023-10-11 15:11:43 +08:00
我也不太熟悉,我觉得你可以试着找一个用 c++17 标准的项目练手,然后开一个 GPT Plus ,看不懂的代码让 GPT4 给你解释,解释不明白的让它具体举例解释,详细解释,结合场景解释,我比较笨,那些新特性我都是和 GPT 学的,我也是边工作边跟 GPT4 学的,c++感觉坑太多了,就各种编译问题就够头大的,一搜就得搜半天,GPT4 在这些方面超级擅长
msmmbl
2023-10-11 15:31:24 +08:00
@lyyQAQ 谢谢。从项目学习也是一个好办法。
minami
2023-10-11 15:34:46 +08:00
msmmbl
2023-10-11 15:47:57 +08:00
@minami 真不错。惊了,看第一条,cpp 都有 Coroutines 了
Mapz
2023-10-12 10:59:12 +08:00
c++ 11
c++ 17
c++ 20
特性挨着在 https://en.cppreference.com/ 上看就行了
建议从 20 往回看
因为很多新 feature 是解决老的屎代码用的,用新不用老
msmmbl
2023-10-12 12:50:59 +08:00
@Mapz 谢谢建议,昨天我还在从低版本往高版本看,想着这么多版本看到啥时候呢,原来从 20 往回看才是正解
Mapz
2023-10-12 15:09:34 +08:00
@msmmbl 但是从高版本看回去会出现有的概念不明白的情况,搜一下即可,例如 constexpr 这个概念每次都在迭代,如果你看的是 c++11 的,你会发现这玩意用处有限,如果你看的 c++17 的,你会发现卧槽牛逼,如果你看了 c++ 20 你会发现 concept 解决了很多 constexpr 解决的问题。从后面往前面看的好处是你一来看的就是很多功能的完全体。但是会出现这到底是啥的疑问。
msmmbl
2023-10-13 08:11:18 +08:00
@Mapz #7 明白,咱需要更多的关注它现在的样子,而不是发展历程
xiaopanzi
2023-10-14 10:17:59 +08:00
说个题外话,现代 C++内容很多;但是现代 C 的话,新增的内容很少,不会让人昏头转向,没有 C++那么激进。
msmmbl
2023-10-16 08:31:30 +08:00
@xiaopanzi 👌
wjx0912
2023-10-17 09:59:37 +08:00
C/C++ 新手入門教學懶人包: https://shengyu7697.github.io/cpp-tutorial/
msmmbl
2023-10-18 05:33:53 +08:00
@wjx0912 谢谢,挺不错的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/980970

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX