V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
msmmbl
V2EX  ›  C++

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

  •  
  •   msmmbl · 2023-10-11 14:03:01 +08:00 · 1708 次点击
    这是一个创建于 402 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    12 条回复    2023-10-18 05:33:53 +08:00
    lyyQAQ
        1
    lyyQAQ  
       2023-10-11 15:11:43 +08:00
    我也不太熟悉,我觉得你可以试着找一个用 c++17 标准的项目练手,然后开一个 GPT Plus ,看不懂的代码让 GPT4 给你解释,解释不明白的让它具体举例解释,详细解释,结合场景解释,我比较笨,那些新特性我都是和 GPT 学的,我也是边工作边跟 GPT4 学的,c++感觉坑太多了,就各种编译问题就够头大的,一搜就得搜半天,GPT4 在这些方面超级擅长
    msmmbl
        2
    msmmbl  
    OP
       2023-10-11 15:31:24 +08:00
    @lyyQAQ 谢谢。从项目学习也是一个好办法。
    minami
        3
    minami  
       2023-10-11 15:34:46 +08:00
    msmmbl
        4
    msmmbl  
    OP
       2023-10-11 15:47:57 +08:00
    @minami 真不错。惊了,看第一条,cpp 都有 Coroutines 了
    Mapz
        5
    Mapz  
       2023-10-12 10:59:12 +08:00
    c++ 11
    c++ 17
    c++ 20
    特性挨着在 https://en.cppreference.com/ 上看就行了
    建议从 20 往回看
    因为很多新 feature 是解决老的屎代码用的,用新不用老
    msmmbl
        6
    msmmbl  
    OP
       2023-10-12 12:50:59 +08:00
    @Mapz 谢谢建议,昨天我还在从低版本往高版本看,想着这么多版本看到啥时候呢,原来从 20 往回看才是正解
    Mapz
        7
    Mapz  
       2023-10-12 15:09:34 +08:00
    @msmmbl 但是从高版本看回去会出现有的概念不明白的情况,搜一下即可,例如 constexpr 这个概念每次都在迭代,如果你看的是 c++11 的,你会发现这玩意用处有限,如果你看的 c++17 的,你会发现卧槽牛逼,如果你看了 c++ 20 你会发现 concept 解决了很多 constexpr 解决的问题。从后面往前面看的好处是你一来看的就是很多功能的完全体。但是会出现这到底是啥的疑问。
    msmmbl
        8
    msmmbl  
    OP
       2023-10-13 08:11:18 +08:00
    @Mapz #7 明白,咱需要更多的关注它现在的样子,而不是发展历程
    xiaopanzi
        9
    xiaopanzi  
       2023-10-14 10:17:59 +08:00
    说个题外话,现代 C++内容很多;但是现代 C 的话,新增的内容很少,不会让人昏头转向,没有 C++那么激进。
    msmmbl
        10
    msmmbl  
    OP
       2023-10-16 08:31:30 +08:00
    @xiaopanzi 👌
    wjx0912
        11
    wjx0912  
       2023-10-17 09:59:37 +08:00
    C/C++ 新手入門教學懶人包: https://shengyu7697.github.io/cpp-tutorial/
    msmmbl
        12
    msmmbl  
    OP
       2023-10-18 05:33:53 +08:00
    @wjx0912 谢谢,挺不错的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:41 · PVG 06:41 · LAX 14:41 · JFK 17:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.