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

有没有敢说精通 C 的?

  •  
  •   shijingshijing · 2018-07-30 15:55:40 +08:00 · 13576 次点击
    这是一个创建于 2287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在虽然每次看到 TIOBE 的排名中 C 的排名都是很靠前的,但事实上现在发现写 C 的工程师不多。

    首先,可能是应用场景有限,最多的就是 Linux 底层应用编程,写驱动,嵌入式编程,网络相关的编程;

    其次,可能就投入和产出效率来说,Java,Python, C#这类语言的产出效率要比 C 高,而 C 追求的是高性能对商业公司来说有时候可以用堆硬件上集群的方式来解决。

    最后,坚持写 C 且能把 C 写好的工程师不多,以前也说过公司如果真的不得不要用 C 和 C++来解决问题,那么一般都是花大价钱请个厉害的然后当几个人用,绝对不会请几个菜鸡 C 码农,效率低容易出错浪费时间浪费钱。

    我还有个问题,像 C++和 Java 都有 Think in 系列,有 Effective 系列,更不谈各种设计模式的。但是 C 的书好像就 C Traps and Pit 那本书,Pointers on c 那本书,想问问还有其他进阶的读物么?特别是关于系统设计和编程技巧这方面的,设计模式什么的好像基本没有看到用 C 写的。还有就是想了解一下除了嵌入式这个行业的发展路线以外,其他写 C 的行业发展路线图和技能树都是什么?

    长期写 C 的都出来冒个泡。

    115 条回复    2018-08-01 09:57:54 +08:00
    1  2  
    easylee
        1
    easylee  
       2018-07-30 15:58:02 +08:00 via Android   ❤️ 8
    这个标题太欠揍了,如果换个标题,可能会有不少人和你认真讨论这个主题内容。
    shijingshijing
        2
    shijingshijing  
    OP
       2018-07-30 15:59:01 +08:00
    @easylee 嘿嘿,难得当一回标题党啊
    Andiry
        3
    Andiry  
       2018-07-30 16:01:51 +08:00 via Android   ❤️ 1
    C 挺简单的,精通不是什么难事
    leido
        4
    leido  
       2018-07-30 16:01:57 +08:00   ❤️ 1
    不屑于精通.
    dtgio
        5
    dtgio  
       2018-07-30 16:03:00 +08:00 via iPhone
    我觉得非要把 C 和 C++区分开来其实没什么必要吧?
    ballshapesdsd
        6
    ballshapesdsd  
       2018-07-30 16:03:10 +08:00
    精通 c 这个字母的拼写
    Applenice
        7
    Applenice  
       2018-07-30 16:03:26 +08:00
    写 C....但是我写的比较辣鸡...是真的辣鸡那种
    Ediacaran
        8
    Ediacaran  
       2018-07-30 16:05:42 +08:00   ❤️ 1
    精通 C 本身不难,用 C 写出来 nginx, redis 这种水平的软件太难了
    enenaaa
        9
    enenaaa  
       2018-07-30 16:06:39 +08:00
    写程序不需要先精通一门语言
    kaneyuki
        10
    kaneyuki  
       2018-07-30 16:08:49 +08:00   ❤️ 1
    核心的东西还是 c/c++写的多
    只是国内一般都是互联网上层业务,所以产生了 c 不怎么用的错觉
    chiu
        11
    chiu  
       2018-07-30 16:10:39 +08:00 via iPhone
    刚毕业的时候敢,现在不敢了……
    glacer
        12
    glacer  
       2018-07-30 16:11:22 +08:00
    C 的难点在于各种奇技淫巧黑科技的指针操作,写 C 的过程中脑子里就要映射出一个内存模型。
    wizardoz
        13
    wizardoz  
       2018-07-30 16:12:05 +08:00   ❤️ 5
    “精通”这个词现在基本上等于贬义词。
    哪个人的简历出现“精通 XXX ”,基本上被认为不谦虚。
    这个可能就是文化吧……
    t6attack
        14
    t6attack  
       2018-07-30 16:16:26 +08:00   ❤️ 1
    除了你提到底层应用编程、系统编程以外。
    Java,Python, C#,PHP,这些编程语言本身,也是 C/C++写的。
    解析 javascript 的浏览器解释引擎。C/C++写的。
    apache/nginx 这些服务器,C/C++写的。
    常用数据库,C/C++写的。除了 ORACLE。

    在互联网领域,C/C++程序员,是你的上游。
    d18
        15
    d18  
       2018-07-30 16:18:00 +08:00
    要深入一门语言当然是看经典的源码了,redis 就不错。光看书永远只能是纸上谈兵。
    king7
        16
    king7  
       2018-07-30 16:18:19 +08:00
    维护系统这方面的,主要改 android C 部分相关的代码,boot、kernel、工具、以及封装的 jni 接口,像楼上 Ediacaran 说的,C 并不难,用 C 写出来 nginx 相当难。
    waruqi
        17
    waruqi  
       2018-07-30 16:25:12 +08:00   ❤️ 6
    c 死忠粉飘过,有兴趣的话可以关注下我的 c 项目: https://github.com/tboox/tbox
    hmzt
        18
    hmzt  
       2018-07-30 16:25:30 +08:00
    我精通 C..................................的语法
    liuminghao233
        19
    liuminghao233  
       2018-07-30 16:28:03 +08:00 via iPhone
    什么叫精通 c
    写一个 os 出来叫精通 c ?
    还是 c 语言内容倒背如流叫精通 c ?


    但前者跟语言有什么关系吗
    luozic
        20
    luozic  
       2018-07-30 16:36:44 +08:00
    系统和驱动现在大部分还是 c/C++写的,一个系统都是 2000w+的项目,有不需要驱动的硬件?
    xmadi
        21
    xmadi  
       2018-07-30 16:38:07 +08:00 via iPhone
    有没有敢说精通中文的?
    xuboying
        22
    xuboying  
       2018-07-30 16:46:16 +08:00
    并非 C 语言用户
    感觉精通 C 语言本身并没有什么,C 出现的很早,语法种类也不多.但是要 C 的很多场景都是和硬件打交道,所以说问别人是否精通 C,一般都是暗示问是否精通某种硬件平台.e.g.如何写 C 代码(汇编)从而达到这种平台的能耗比最优.
    sammo
        23
    sammo  
       2018-07-30 16:47:38 +08:00   ❤️ 2
    用 C 语言的人根本瞧不上 V2EX
    zhzer
        24
    zhzer  
       2018-07-30 16:47:47 +08:00
    有没有敢说精通程序员的?
    hanxiV2EX
        25
    hanxiV2EX  
       2018-07-30 16:52:53 +08:00 via Android
    游戏服务端引擎用 C 写的。逻辑用脚本语言。
    SonicY
        26
    SonicY  
       2018-07-30 16:53:24 +08:00 via Android   ❤️ 1
    精通这玩意说的太玄了,给我一本世界名著,我能看懂里面的每一个字,但让我写,写不出来。
    abutter
        27
    abutter  
       2018-07-30 17:02:57 +08:00
    C 本身并不算难,只是很多东西都跟硬件或者编译器多少有些关系。
    hatsuyuki
        28
    hatsuyuki  
       2018-07-30 17:03:46 +08:00
    @dtgio 有必要,C 和 C++ 可以说是两门完全不同的语言
    xhinliang
        29
    xhinliang  
       2018-07-30 17:05:09 +08:00   ❤️ 3
    我觉得 C/C++ 这个说法就是扯淡。
    C 就是 C,C++ 就是 C++。
    这是完全不同的两门编程语言。
    tingyunsay
        30
    tingyunsay  
       2018-07-30 17:11:48 +08:00   ❤️ 1
    经常在 qq 群看到有人发言:在学校学了几年,除了 c 什么都不会..
    deweixu
        31
    deweixu  
       2018-07-30 18:28:21 +08:00
    买了 《 Linux/UNIX 系统编程手册》《 UNIX 环境高级编程》 《 UNIX 网络编程 卷 1:套接字联网 API 》 《 UNIX 网络编程 卷 2:进程间通信》
    zhtf
        32
    zhtf  
       2018-07-30 18:37:55 +08:00
    敢不敢和能不能友不是一回事儿
    YenvY
        33
    YenvY  
       2018-07-30 18:56:05 +08:00 via iPad   ❤️ 1
    远不如精通 css 看上去那么不可思议
    tomfs
        34
    tomfs  
       2018-07-30 18:56:55 +08:00
    标题歪了,导致帖内内容不是主要了.
    shijingshijing
        35
    shijingshijing  
    OP
       2018-07-30 19:00:43 +08:00
    @deweixu 都在书架上吃灰,对不对?
    shijingshijing
        36
    shijingshijing  
    OP
       2018-07-30 19:01:19 +08:00
    @t6attack 比较好奇 ORACLE 用什么写的? Java 么?安装时候的那个 UI 确实是用 Java 写的
    xxoxx
        37
    xxoxx  
       2018-07-30 19:06:10 +08:00 via iPhone
    我能用 18 种字体写出 c 字,算不算精通?
    firebroo
        38
    firebroo  
       2018-07-30 19:10:42 +08:00
    三角猫水平,写点简单的可以。。
    jtsai
        39
    jtsai  
       2018-07-30 19:10:56 +08:00 via Android
    @sammo 也有可能他只是搞硬件
    stzz
        40
    stzz  
       2018-07-30 19:12:22 +08:00 via Android
    当初入门时看过.《 C 专家编程》,当时看得还可以
    zjsxwc
        41
    zjsxwc  
       2018-07-30 19:14:02 +08:00 via iPhone
    只要心够大有什么不敢的
    Gothack
        42
    Gothack  
       2018-07-30 19:14:16 +08:00
    语言只是个工具,难得是你用这工具能干出什么活
    bfdh
        43
    bfdh  
       2018-07-30 19:27:29 +08:00
    长期 && 只会用 C 的 表示不知道该说点什么
    fuyufjh
        44
    fuyufjh  
       2018-07-30 19:51:06 +08:00   ❤️ 4
    C 只比汇编高级那么一点点,精通 C 比精通 Python、Java 容易的多。然而,对于能用得到 C 的地方,编程语言可能是最简单的部分。
    prolic
        45
    prolic  
       2018-07-30 19:52:54 +08:00 via Android
    c 的语法,关键字也不多,不复杂,说精通也没什么问题吧?上面说的东西都不是语言层面的知识点
    crab
        46
    crab  
       2018-07-30 19:54:33 +08:00
    丹尼斯·里奇:我
    肯·汤普逊:还有我
    hyyou2010
        47
    hyyou2010  
       2018-07-30 20:06:34 +08:00   ❤️ 2
    要说 c 语言的编程技巧,我看得最头晕目眩的是 linux 内核里面各种链表 /结构 /锁
    但是,除非工作需要,否则不推荐去钻研,因为高级语言可以轻松搞定

    计算机硬件+CPU+汇编+C,这是一坨,关注的是物理硬件是怎样运行的,C 只是汇编的外衣,通过学 C 和汇编我们知道物理硬件是怎样运行起来的,这就够了

    C++,Java 或其他任何高级语言,这是一坨,关注的是编程技巧与数据处理,关注业务的完成,这才是普通程序员要多花时间的地方
    NSAtools
        48
    NSAtools  
       2018-07-30 20:12:40 +08:00
    刚毕业的时候敢说
    tan90
        49
    tan90  
       2018-07-30 20:13:39 +08:00
    自学 C 语言,也是编程的入门语言,自娱自乐写点小程序,面向百度编程,简历上应该怎么形容这种状态?
    djyde
        50
    djyde  
       2018-07-30 20:17:18 +08:00
    到底「精通」的标准是什么?我了解这门语言的所有特性、完整阅读过这门语言的 specification, 在实际环境中遇到过很多的坑,而对方恰好问了我一个关于这么语言一个我忘掉了的点,那我算不算「精通」?是否只要人的记忆力有限,就永远也无法「精通」一门语言?
    djyde
        51
    djyde  
       2018-07-30 20:18:37 +08:00
    那么我认为只有机器能「精通」某一门语言了
    sunnogo
        52
    sunnogo  
       2018-07-30 20:19:59 +08:00 via Android
    据说代码不能写太牛逼,不然其他人看不懂不好维护。特别是 C 语言。
    GeruzoniAnsasu
        53
    GeruzoniAnsasu  
       2018-07-30 20:46:55 +08:00   ❤️ 2
    我觉得就 C
    语言
    来说
    达到精通不难而且是可量化的
    二级指针随便用绕不晕
    函数指针类型随手写不用想
    嵌套宏伪 meta 想用能用
    熟知 duff's device,typedef struct type* type 无类型指针,list_head 嵌入式“泛型”链表 等 C 特有的惯用法和 trick
    然后再用过些 c99 c11 标准的特性比如变长数组语法糖,_Generic
    就很精通了
    xupefei
        54
    xupefei  
       2018-07-30 20:50:08 +08:00
    @t6attack #14
    @shijingshijing #36
    Oracle 的引擎是 C++写的,顶层是 Java 写的。
    > Java,Python, C#,PHP,这些编程语言本身,也是 C/C++写的。
    除开某些性能相关的组件,Java 是 Java 写的,C#是 C#写的。这个叫“自举”。
    GeruzoniAnsasu
        55
    GeruzoniAnsasu  
       2018-07-30 20:50:50 +08:00
    另外拿 c++来和 c 对比……

    c++实在是复杂到太难以想象了,这个世界上最鬼畜的程序员就是 c++程序员,鬼知道是什么驱动他们去实现一个写错一个逗号报错 1000 个模板嵌套的代码……

    用模板模式匹配去创造一个语法描述?然后把它静态分析编译成一个语法 parser ? 这 tm 是人干的事?

    然而这是有些 c++程序员干的事……
    Rasphino
        56
    Rasphino  
       2018-07-30 21:16:27 +08:00 via Android
    @dtgio 个人感觉 c++11 以后的 c++和 c 已经是天壤之别了
    PythonAnswer
        57
    PythonAnswer  
       2018-07-30 21:20:38 +08:00
    精通 html css 很厉害了
    zhchyu999
        58
    zhchyu999  
       2018-07-30 21:26:50 +08:00
    有人敢说精通某一项技术么
    loading
        59
    loading  
       2018-07-30 21:27:41 +08:00 via iPhone   ❤️ 2
    我,精通,毕竟都 15 天过去了。
    kwest
        60
    kwest  
       2018-07-30 21:34:38 +08:00   ❤️ 4
    大学时曾用 VC6 写过贪吃蛇,做过课程设计。毕业后入了嵌入式的坑,用 C 写过 CGI (很多人怕不知道这玩意儿是啥,嗯,反正吧比 PHP 还古老)。写过嵌入式 Web Server,你没看错,由于硬件 Flash 和 RAM 限制,得自己实现基本的 HTTP1.0 协议,为什么不实现 HTTP1.1 协议呢,因为 1.1 太复杂了,那个时候水平不够:( 同样由于硬件限制,为了动态网页交互,还得自己实现一个类似于 PHP 的动态网页解析器。感谢摩尔定律,硬件越来越快,价格也越来越便宜,硬件上可以跑嵌入式 Linux 了,开源软件一抓一大把,应用层相对变得容易,只需要交叉编译,需要改的代码没以前那么多了。用户态解决了,可内核态呢?早期芯片商提供的驱动不完善,得自己修改,甚至有些还得自己写。公司业务又涉及到内核部分的修改,于是改吧改吧从 2.4 改到 2.6,从 2.6 又改到 3.0。Linux 内核变得越来越完善,芯片商的 turnkey 解决方案也考虑得越来越周到,对嵌入式开发人员的要求也没那么高了,行业门槛越来越低,竞争对手越来越多,产品市场逐渐从蓝海变成了一片红海,我知道是时候离开了。几年后,听闻各种智能硬件又火了,开源硬件发展得如火如荼,树莓派,各种派如雨后春笋般纷纷冒了出来,我笑了笑,这不是咱玩过的东西吗,只是换了个“智能”的壳,人生苦短,还是继续码我的 Python 吧!
    shijingshijing
        61
    shijingshijing  
    OP
       2018-07-30 21:55:21 +08:00
    @hyyou2010
    @kwest
    @GeruzoniAnsasu

    都去撸高级语言去,这个也是大趋势,花相同时间和精力,肯定是要收益最大化的。

    PS:最近跟一个老外交流,他们用 C 单独实现模块,然后用 Lua 当胶水连接起来,Lua 本身够精简加上 C 的性能,是个很不错的选择呢。
    shijingshijing
        62
    shijingshijing  
    OP
       2018-07-30 21:57:54 +08:00
    @kwest 唉,我当初也是从点亮 LED 跑流水灯什么的开始做起的,各种位操作寄存器操作,各种移位操作,绕死个人。现在一般硬件模块都带 SDK 和 Application Note,把里面代码复制粘贴过来随便改改跑起来没 Bug 就 ok 了。优化?不存在的。
    xwander
        63
    xwander  
       2018-07-30 21:59:53 +08:00
    @Andiry NOVA 大佬,刚拜读完您的。。。
    nikola
        64
    nikola  
       2018-07-30 22:27:32 +08:00
    如果说每种语言都有自己的特色,不见得。但是,如果说 C 语言比较有特色,区别于其他语言,那我是承认的。C 语言本身没什么难的,但是有扎实的 C 语言功底,对于理解操作系统源码实现,对于理解计算机体系结构是很有帮助的。所以计算机专业第一门编程语言往往是 C 语言。这是程序员学习经历中基础的基础,理解 C 语言和数据结构,往后看其他语言都是万变不离其宗。
    mringg
        65
    mringg  
       2018-07-30 22:50:37 +08:00 via iPhone
    语法就那些,用不了三天就能精通。但是,你非得加上算法模型,内存模型,网络模型,,,,,慢慢学去吧。。。。。
    qq258076067
        66
    qq258076067  
       2018-07-30 23:07:42 +08:00
    借楼 有精通 C 和 swift 或者 oc 的吗。。。
    luozic
        67
    luozic  
       2018-07-30 23:16:04 +08:00 via iPhone
    编码,大小端,做标准应用还是专有应用。
    adadada
        68
    adadada  
       2018-07-30 23:30:59 +08:00
    KVM/Xen/QEMU 开发者路过。基本搞明白了指针的用法和链接器的工作原理,再去把 C standard 里的 undefined behavior 和 implementation-dependent behavior 过一遍,把项目用的编译器的常用扩展搞懂了,剩下的感觉就是多写和多看别人写了。感觉学什么语言都是类似的套路吧,只是 C 比许多语言都要小得多,应该能够更快的精通,吧
    darkcode
        69
    darkcode  
       2018-07-30 23:48:35 +08:00
    @dtgio 有,精通 C 还是能训练出来的,精通 C++就是无底洞
    lzhCoooder
        70
    lzhCoooder  
       2018-07-30 23:49:14 +08:00 via iPhone
    我也算 C 爱好者,然而迫于生存压力现在在写 C++(#捂脸)

    C 语法特性少很容易学,但是真的很难用,没轮子先不说,各种 UB 满天飞,到处是你想不到的坑,不懂汇编寸步难行,和操作系统之间强结合必须懂操作系统吧,没其他高级语言自带的数据结构,经常面临手撸的困境,C 想搞点事情真的很难啊....

    关于未来前景,应该说非常悲观了,我应该说非常喜欢 C 的简单与直接,但是还是只能靠 C++为生,除了嵌入式 C 没什么应用场景,不合格程序员太多,根本写不了 C,让不合格的程序员写 C 真的会是一场灾难吧...
    stevenbipt
        71
    stevenbipt  
       2018-07-31 00:17:06 +08:00 via Android   ❤️ 1
    当初只有山寨机的年代,联发科处理器不支持 C++,只支持 c 语言,然后大佬们都需要把用 java 写的游戏改写成 c 语言的,OOP 什么的都是小意思,现在支持 C++了估计也没人愿意去这样做了
    frqk
        72
    frqk  
       2018-07-31 00:46:59 +08:00 via iPhone
    langjiyuan
        73
    langjiyuan  
       2018-07-31 01:00:14 +08:00
    写 c 的路过,项目上目前还是纯 c 语言,还不到 c99,一直有很大的历史包袱。新的产品线开发时,直接定了换到 java 或 python,争取上 docker,旧平台因为内存和 cpu 限制只能保持纯 c 的维护,恩我就是那个被分配到主业维护的。。。。
    产出上 c 与 java 和 python 差的不是一点,相同的业务需求,维护 c 的那套需要花 1 个星期+2 个人力,用 python 写 3 天 1 个人。。。
    个人感觉 c 在应用层的使用会越来越少,内核和驱动级别另说,用 c 就是硬件跟不上,现在随便都 64 位 arm,跑个 java 跟玩似的。




    其次,可能就投入和产出效率来说,Java,Python, C#这类语言的产出效率要比 C 高,而 C 追求的是高性能对商业公司来说有时候可以用堆硬件上集群的方式来解决。

    最后,坚持写 C 且能把 C 写好的工程师不多,以前也说过公司如果真的不得不要用 C 和 C++来解决问题,那么一般都是花大价钱请个厉害的然后当几个人用,绝对不会请几个菜鸡 C 码农,效率低容易出错浪费时间浪费钱。
    ryd994
        74
    ryd994  
       2018-07-31 01:01:26 +08:00 via Android
    敢啊,反正吹牛又不用上税,不就是说而已嘛,不要给别人听到就好
    @frqk 生命可贵…………
    esw
        75
    esw  
       2018-07-31 01:07:07 +08:00 via Android
    懂得计算机工作原理才能写好 c 把
    ericgui
        76
    ericgui  
       2018-07-31 01:09:47 +08:00
    这也是我学了 C 语言 2 次,然后都放弃了。日常工作用不到。。。。。。。。

    刷 LeetCode 也是用 JavaScript
    langjiyuan
        77
    langjiyuan  
       2018-07-31 01:20:17 +08:00   ❤️ 1
    上一条。失误。。没写完。。。继续。。。
    c 的开源库和单元测试是真的无解,各种轮子大部分情况下需要自己调很久,或者干脆自己写。。单元测试废了好大劲也没能在组内推广,最后在编码阶段只能停留在用 python 脚本的功能测试上,私以为快速的单元测试是 c 最麻烦的地方。一个指针的移位,最后表达的结果完全不同。

    至于 c 语言的进阶,,因为指针疯狂自由的(我用的是疯狂),即使参照同一详设,组内编写的程序,详细到同一函数的实现,中间的逻辑细节完全不同。未排除未知 bug,最后逼的组内 c 语言规范补全各类细节,至今还在补充当中。也是因为指针,各类的设计模式等等,都可以在 c 上实现,不过成本是很高,相对其他语言。

    c 的职业发展路径,嵌入式中驱动 /linux 内核至少暂时不会出现很多变得,纯单片机,现在 linux 满天飞,个人了解用的是越来越少了。linux 应用层,目前公司内 c 的使用也在减少。逐步被 java 替换了,测试用 python。目前个人已经在切换到 java 和 python 上来了,因为前(钱)景。
    zaneenaz
        78
    zaneenaz  
       2018-07-31 01:23:44 +08:00 via Android
    每次写到指针时候都会 segment fault。精通是不存在的。
    coldear
        79
    coldear  
       2018-07-31 04:22:15 +08:00 via Android
    C 语言本身算是简单的语言,但就是因为太简单,用起来不方便,难度来自于你要造的那些轮子
    ihackevin
        80
    ihackevin  
       2018-07-31 08:36:03 +08:00
    真看不起你们这些程序员,一个字母讨论 80 楼,我精通 a-z
    sixm
        81
    sixm  
       2018-07-31 08:40:40 +08:00
    @frqk 敢问 T 恤哪里有卖的,好想买一件
    wkl17
        82
    wkl17  
       2018-07-31 08:48:42 +08:00
    借个楼吧:乃们都用什么工具开发 C、C++?
    geying
        83
    geying  
       2018-07-31 08:57:33 +08:00
    我精通各种语言和框架...

    的 hello world
    Clarencep
        84
    Clarencep  
       2018-07-31 09:03:08 +08:00
    精通 C 语言本身并不困难,困难的是精通你的业务用到的所有的 C 库
    macha
        85
    macha  
       2018-07-31 09:07:54 +08:00
    写 C++但不精通的路过。C++好歹还有一个 STL 可以用用,C 语言只能一起从头撸起了。
    harry890829
        86
    harry890829  
       2018-07-31 09:08:53 +08:00
    @frqk #72 !!!!这个衣服哪里买啊


    我写了 4 年 c/c++,我知道我只是一个渣渣
    ytmsdy
        87
    ytmsdy  
       2018-07-31 09:14:33 +08:00
    现在越来越觉得,写 C/C++的才是真正的程序员啊。
    一般人 C++的指针就能喝一壶的了,但是我见过有人写出指针+指针+指针的程序!
    C++领域是大牛横行的地方,一般都是三四十岁的大叔,而且都很低调。
    AngryLi
        88
    AngryLi  
       2018-07-31 09:15:49 +08:00
    前不久面一个“精通 C++”,问了下平时用的多吼?“没,也就是一部分 SDK 会用到一点”。这就是简历上的精通
    dosmlp
        89
    dosmlp  
       2018-07-31 09:22:55 +08:00
    这么简单的语言,我敢说我精通
    zhzer
        90
    zhzer  
       2018-07-31 09:27:47 +08:00
    @frqk 那么,那里可以买到呢???
    firejoke
        91
    firejoke  
       2018-07-31 09:37:41 +08:00
    @frqk 求 python T 恤的链接!!!
    karllynn
        92
    karllynn  
       2018-07-31 09:52:47 +08:00
    这个标题看了想 block 楼主…
    fyxtc
        93
    fyxtc  
       2018-07-31 09:54:02 +08:00   ❤️ 1
    精通语言真的很无聊。。。精通某个领域知识才算比较有价值吧
    silencefent
        94
    silencefent  
       2018-07-31 09:56:21 +08:00
    你敢说你精通 C ?
    是啊(便乘)
    那你说说这个技术用 C 解决的思路要点
    说不出呀
    那你说精通 C ?
    你只问我敢不敢嘛
    yingtl
        95
    yingtl  
       2018-07-31 10:07:25 +08:00
    常年用 C 的路过
    Yoock
        96
    Yoock  
       2018-07-31 10:07:34 +08:00 via iPhone
    精通 c,写 c 的时候脑子里就会出现编译后的汇编。
    wuweidong0107
        97
    wuweidong0107  
       2018-07-31 10:18:51 +08:00
    你们对精通某种语言是不是有误解,我理解的精通是你能用这种语言去阅读优秀的代码并且写出优秀的代码,这些不是基于单纯某个语言的,而是基于你对软件的理解。
    Commencal
        98
    Commencal  
       2018-07-31 10:56:59 +08:00
    @silencefent 好臭哦,C 艹我超勇的(一 转 攻 势)
    glfpes
        99
    glfpes  
       2018-07-31 11:05:23 +08:00
    上一次真正写 C 还是嵌入式课程的大作业,好像是在一个什么板上调用忘记了什么东西,写 1 个能打电话发短信有电话本能拍照录像有相册还能用 opencv 人脸识别外加 gps 定位和惯性导航,界面还是 QT 写的,这辈子就用过这一次 QT。

    我估计为了买那个带超大触摸屏的板子,学校花的钱能买好几个诺基亚 5800
    coderluan
        100
    coderluan  
       2018-07-31 11:35:21 +08:00   ❤️ 1
    “首先,可能是应用场景有限,最多的就是 Linux 底层应用编程,写驱动,嵌入式编程,网络相关的编程;”

    最开始就说错了,凡是性能相关的库,很大部分都是(嵌着 SIMD 和汇编的) C 实现的,计算机视觉,机器学习,异构计算等等,只不过封装完之后你就认不出来而已。

    所以说精通 C,其实是精通性能优化,毕竟语言只是工具,这就涉及到各种专业课程了,数据结构,算法,机组,编译原理,操作系统,不同方向还有相应方向的知识,图形学,GPU 编程啥的。

    然后 C++(尤其是 11 之后)和 C 是两码事,应用场景也不同,性能优化一般也就用个封装和 STL,别的特性反而会拖慢性能。

    最后有兴趣推荐看看 ffmpeg 源码,C 语言实现的非常牛逼。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2728 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:24 · PVG 20:24 · LAX 05:24 · JFK 08:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.