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

C 跟 C++一般是什么领域的主流语言?

  •  
  •   Counter · 2019-04-12 12:16:15 +08:00 · 7913 次点击
    这是一个创建于 1813 天前的主题,其中的信息可能已经有所发展或是发生改变。
    53 条回复    2019-04-15 15:51:03 +08:00
    jiafaner
        1
    jiafaner  
       2019-04-12 12:19:05 +08:00
    刚开始看 C++ 一头雾水
    准备用 QT 写桌面
    strpbrk
        2
    strpbrk  
       2019-04-12 12:25:32 +08:00 via iPhone
    嵌入式 硬件开发 游戏开发 数据库
    Cbdy
        3
    Cbdy  
       2019-04-12 12:26:25 +08:00 via Android
    C 操作系统
    C++游戏、系统软件
    Counter
        4
    Counter  
    OP
       2019-04-12 12:27:03 +08:00
    @strpbrk 数据库?能否麻烦讲详细一些
    wwqgtxx
        5
    wwqgtxx  
       2019-04-12 12:37:34 +08:00 via iPhone
    @Counter mysql oracle sqlserver mongodb redis 这些都是 c/c++写的
    neoblackcap
        6
    neoblackcap  
       2019-04-12 12:46:10 +08:00
    C 主要是要跟硬件打交道的场景,
    C++主要是大型基础应用程序,对性能要求高,延迟忍受度低。比如分布式系统,数据库,3A 游戏,Office,Adobe,编码相关等
    janus77
        7
    janus77  
       2019-04-12 12:56:29 +08:00 via iPhone   ❤️ 1
    图形处理.比如 flutter 的引擎,opencl gl cv,跨平台的音视频播放,数据库和操作系统,高性能后端.比如高频交易,网游后
    GeruzoniAnsasu
        8
    GeruzoniAnsasu  
       2019-04-12 12:56:47 +08:00   ❤️ 1
    所有用于支撑互联网基础设施的基础设施
    绝大部分都是用 c/c++写的
    zzzhbooo
        9
    zzzhbooo  
       2019-04-12 13:35:04 +08:00
    金融,期货,股票
    orafy
        10
    orafy  
       2019-04-12 13:38:10 +08:00 via iPhone
    实时系统,游戏引擎,高频交易
    trait
        11
    trait  
       2019-04-12 13:46:16 +08:00
    图形渲染除了它们两现在真是一个能打的都没有
    inoki
        12
    inoki  
       2019-04-12 14:00:41 +08:00 via Android
    现在计算机基石吧,远古的是汇编
    jxf2008
        13
    jxf2008  
       2019-04-12 14:02:04 +08:00
    学 Qt 的飘过。。。。
    一直用 openCv 处理图片
    q397064399
        14
    q397064399  
       2019-04-12 14:10:02 +08:00   ❤️ 1
    @inoki #12 其实汇编也是,现在写 C/C++的 说自己不懂汇编,这门语言你两门语言你没法学
    HackerPainter
        15
    HackerPainter  
       2019-04-12 14:12:51 +08:00
    需要高性能的地方基本都是 C++
    fannas
        16
    fannas  
       2019-04-12 14:18:21 +08:00 via Android
    高性能计算与并行计算
    7sDream
        17
    7sDream  
       2019-04-12 14:22:35 +08:00
    只有我们还在用 C++ 写 Web 服务吗……

    脑壳疼……
    zwh2698
        18
    zwh2698  
       2019-04-12 14:44:51 +08:00 via Android
    系统软件,嵌入式,物联网,总之你用的一切电子产品都有。 举个例子,家里的路由器,洗衣机,冰箱,出门你用的导航,不管是车载还是 Android 或者 ios 的,你的汽车控制系统。等等。太多了
    zealinux
        19
    zealinux  
       2019-04-12 14:45:57 +08:00
    @7sDream
    你用了什么框架,
    最近也在思考把一个跑的慢的 java 服务改成 C++写。
    luoqeng
        20
    luoqeng  
       2019-04-12 14:55:49 +08:00   ❤️ 1
    去搜搜 C++ 招聘信息
    coderluan
        21
    coderluan  
       2019-04-12 15:06:16 +08:00
    简单来说,任何性能为主要指标的领域,而且严格来说是 C 和汇编,C++只是当成 C 语言的扩展,本身的很多特性因为性能原因也是很少使用的。
    7sDream
        22
    7sDream  
       2019-04-12 15:14:46 +08:00
    @zealinux #18

    公司内部的,有开源版,如果想试一下的话: https://github.com/TarsCloud/Tars

    但我不确定开源版有没有 HTTP 协议支持,还是只支持 RPC。
    inoki
        23
    inoki  
       2019-04-12 15:32:58 +08:00 via Android
    @q397064399 我接触到是 bootloader 用汇编写,然后环境初始化好之后都转交给 c 或者更高层语言了
    q397064399
        24
    q397064399  
       2019-04-12 15:37:46 +08:00
    @inoki #23 但是你要学懂,学明白并了解 C/C++的设计(例如左值 move 指针 函数返回) 就真的要对 栈帧还有汇编的调用 过程 了解的明明白白,我不是说你背熟汇编所有的指令,因为指令太多,而且有些编译器隐藏了很多优化。
    q397064399
        25
    q397064399  
       2019-04-12 15:38:42 +08:00
    @inoki #23 我最近也在看 C++的左值 move 但是看了半天 不明白,然后反汇编一看 就恍然大悟
    waruqi
        26
    waruqi  
       2019-04-12 15:48:38 +08:00 via Android
    用 c 的话可以试试 https://github.com/tboox/tbox 跨平台基础库
    429839446
        27
    429839446  
       2019-04-12 15:52:21 +08:00
    @7sDream tars 里面的代码真的有些年头了, 用 loki 造了 std::bind,,,
    lovejunjie1
        28
    lovejunjie1  
       2019-04-12 15:56:57 +08:00
    C++曾经理解了一些 2 进制和 16 进制的一些基础概念,还有进出栈。最怕的还是指针,不敢动,动不好就蓝屏
    metaquant
        29
    metaquant  
       2019-04-12 15:57:01 +08:00   ❤️ 1
    jxf2008
        30
    jxf2008  
       2019-04-12 16:05:17 +08:00
    @metaquant
    什么意思?线上的语言工作经验长,收入多?线下的语言收入和工作经验关联少?
    dabaibai
        31
    dabaibai  
       2019-04-12 16:12:03 +08:00
    所有后端
    CodeCore
        32
    CodeCore  
       2019-04-12 16:41:25 +08:00
    嵌入式 C/C++ 都用.
    还有很多基础软件基本也是他俩写.
    deadEgg
        33
    deadEgg  
       2019-04-12 16:55:05 +08:00
    纯 c: 驱动往上吧,比如 dpdk、spdk
    c++:应用型,比如著名的 btc、xmr、eos 都是 C++开发的

    用纯 c 来规定接口、oop 很恶心其实。而且隐式转型、靠地址转型又相对比较复杂,所以不太适合大型应用的开发(考虑到效率)。
    而 c++既有 c 的优点,又解决了 c 的一些缺点,所以大型用开发还是相对快速的
    zjsxwc
        34
    zjsxwc  
       2019-04-12 17:07:41 +08:00
    没有 GC 的高性能需求
    vexxx
        35
    vexxx  
       2019-04-12 17:33:18 +08:00
    c 适合写小而精的代码,linux 底层代码都用 c。
    c++适合大型应用,例如图形等复杂应用。
    glfpes
        36
    glfpes  
       2019-04-12 18:45:59 +08:00 via Android
    推荐引擎 需要高性能的东西。
    zichen
        37
    zichen  
       2019-04-12 19:32:15 +08:00
    @Counter 除了那哥们说的,还有 rocksdb,leveldb,再延伸到分布式存储方面,glusterfs,ceph,这些也都是 c/c++写的。
    logic159
        38
    logic159  
       2019-04-12 19:34:14 +08:00 via iPhone
    信息安全,网络通信等
    weifengzi2009
        39
    weifengzi2009  
       2019-04-12 19:47:50 +08:00
    高频交易、超算(当然还有 Fortran 等语言)
    hkitdog
        40
    hkitdog  
       2019-04-12 22:53:24 +08:00 via iPhone
    工業應用,例如自動化流水線上的控制台,ATM 客戶端
    還真沒聽過用 c/cpp 寫 crud 的
    yanaraika
        41
    yanaraika  
       2019-04-12 23:04:36 +08:00 via Android
    @coderluan 瞎扯。HPC 现在 C++用的比 C 多多了
    Destiny97
        42
    Destiny97  
       2019-04-12 23:11:08 +08:00 via Android
    bootloader 就是初始化好硬件,如看门狗,时钟,dram,刚开始是用汇编操作,因为 c 语言跑不起来,设置 sp 指针后,清除 bss 段初始化环境后就可以交给 c 了
    tairan2006
        43
    tairan2006  
       2019-04-13 00:06:15 +08:00
    Rust 可以替代一部分 C/C++的工作了,但是这个语言的设计总感觉有一些缺陷
    usingnamespace
        44
    usingnamespace  
       2019-04-13 01:01:45 +08:00 via iPhone
    @wwqgtxx ? Redis 干干净净的 ANSI C 写得谢谢
    wwqgtxx
        45
    wwqgtxx  
       2019-04-13 07:09:52 +08:00 via iPhone
    @usingnamespace ansi c 就不是 c 了么?我只是说这些个软件是 c 或者 c++写的,有啥问题?
    SunFarrell
        46
    SunFarrell  
       2019-04-13 10:42:50 +08:00
    发波内推要求
    if (熟练掌握 Qt)
    printf("PC 音视频开发! ");
    else if (会一点 QT && (熟悉 图像处理 || 图形渲染))
    printf("做图像处理 /图形渲染 /音视频开发方向!");
    else
    printf("没了");

    以上两个职业,比较喜欢招年轻有潜力的(以后让你学学机器学习能快速应用),直播行业,待遇不会差的,简历发这里 [email protected]
    lizhuoli
        47
    lizhuoli  
       2019-04-14 10:57:24 +08:00 via iPhone
    音视频,图像编解码,只能上 C/C++,因为必须且一定需要汇编和內连汇编
    coderluan
        48
    coderluan  
       2019-04-14 16:39:16 +08:00
    @yanaraika 请正确理解我的意思,我并不是说 C++没 C 多,而是说这些领域中 C++主要使用性能好的特性,而这些特性大多继承自 C 语言。
    yanaraika
        49
    yanaraika  
       2019-04-14 22:48:02 +08:00 via Android
    @coderluan 并不。std::sort vs qsort。能用 expression template 消除无谓 copy/allocation 的矩阵库 vs BLAS。
    usingnamespace
        50
    usingnamespace  
       2019-04-15 11:23:16 +08:00 via iPhone
    @wwqgtxx 瞎了不好意思。。不知道为啥没注意到你写了 c
    jxf2008
        51
    jxf2008  
       2019-04-15 11:57:29 +08:00
    @coderluan
    你不是一直叫人学 java 不要去学 c/c++的么?
    coderluan
        52
    coderluan  
       2019-04-15 15:37:10 +08:00
    @jxf2008 是啊,现在也是,但是我说的是参加培训的情况。
    coderluan
        53
    coderluan  
       2019-04-15 15:51:03 +08:00
    @yanaraika 我都说“大多”了,你就拿一两个情况反驳我...... 你拿出统计数据我直接认输,当然反过来我也没统计,所以“ HPC 中 C++用主要特性大多继承自 C 语言”这个我不和你争,没数据只靠经验谁也说服不了谁。你知道我没说过 C++没 C 多就行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2669 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.