本人最早还是大学课堂时候接触了 C 语言。
工作后主要还是使用 java 、php 、js 、go 、python 这类高级语言,这些高级语言每个版本升级看看有哪些新特性,慢慢的也就跟上了,也没特别去学习。
身边没有写 C 的工作环境,C 的话主要还是玩兴趣的时候写写 arduino 、stm32 时候用用,也没用到什么高级特性,大学那套感觉够用。直到最近开始玩 soc 、linux 驱动这些的时候,发现了里面的 c 很多语法都好像既熟悉又陌生。还有用 esphome 写自定义 component 的时候遇到了 template ,也是不大熟悉。总感觉自己懂得 C 还是老的一套,不太适应新的环境了。
想了解下,现在 2023 年 10 月份了,如果想要快速的学下最新的 C 或者 C++,了解他们的新特性,而不是从头开始(就是数据类型,运算符这种已经熟知的东西了),应该从哪方面入手。
1
lyyQAQ 2023-10-11 15:11:43 +08:00
我也不太熟悉,我觉得你可以试着找一个用 c++17 标准的项目练手,然后开一个 GPT Plus ,看不懂的代码让 GPT4 给你解释,解释不明白的让它具体举例解释,详细解释,结合场景解释,我比较笨,那些新特性我都是和 GPT 学的,我也是边工作边跟 GPT4 学的,c++感觉坑太多了,就各种编译问题就够头大的,一搜就得搜半天,GPT4 在这些方面超级擅长
|
3
minami 2023-10-11 15:34:46 +08:00
|
5
Mapz 2023-10-12 10:59:12 +08:00
c++ 11
c++ 17 c++ 20 特性挨着在 https://en.cppreference.com/ 上看就行了 建议从 20 往回看 因为很多新 feature 是解决老的屎代码用的,用新不用老 |
7
Mapz 2023-10-12 15:09:34 +08:00
@msmmbl 但是从高版本看回去会出现有的概念不明白的情况,搜一下即可,例如 constexpr 这个概念每次都在迭代,如果你看的是 c++11 的,你会发现这玩意用处有限,如果你看的 c++17 的,你会发现卧槽牛逼,如果你看了 c++ 20 你会发现 concept 解决了很多 constexpr 解决的问题。从后面往前面看的好处是你一来看的就是很多功能的完全体。但是会出现这到底是啥的疑问。
|
9
xiaopanzi 2023-10-14 10:17:59 +08:00
说个题外话,现代 C++内容很多;但是现代 C 的话,新增的内容很少,不会让人昏头转向,没有 C++那么激进。
|
11
wjx0912 2023-10-17 09:59:37 +08:00
C/C++ 新手入門教學懶人包: https://shengyu7697.github.io/cpp-tutorial/
|