我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1132|回复: 11

[移动软件开发] C语言还有哪些需要改进的?

[复制链接]
  • TA的每日心情
    无聊
    昨天 17:04
  • 签到天数: 86 天

    [LV.6]常住居民II

    1万

    主题

    8215

    回帖

    5万

    积分

    三级逆天

    积分
    53653

    终身成就奖特殊贡献奖原创先锋奖金点子奖优秀斑竹奖宣传大使奖

    发表于 2021-2-12 08:38:59 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    如果你是一个写程序的老手,你可能用过很多种有着不同基础哲学的程序语言;你用过Perl吗?它的概念跟Algol有很大的不同;直译的Basic语言是如此容易,让很多人能进入这个领域,而Visual Basic则是一头完全不同的“怪兽”。
    我的第一种语言(在母语英语之后)是Fortran,我用过不少它的分支语言以及编译程序。汇编语言(Assembly)…嗯,就是汇编语言,不是有太多人能说出个所以然;C语言基本上是汇编语言,在生产力方面有大幅改善。
    C++语言在我看来充满了相当的复杂度以及黑暗之处,聪明的人最好不要踩到。还有Java语言是一种有趣的面向对象(OO)方法,但其垃圾回收(garbage collection)机制以及缺乏指标(pointer)等特性,使该语言不适合大多数的嵌入式开发。


    广告

    C语言多年来在这个产业界是流行语言,调查数据显示(如下图),该语言在嵌入式领域的市占率最高,而且其地位数年来屹立不摇,许多新一代的语言如Python都仍远远落后,C将会在很长一段时间继续是主力语言。

                                   
    登录/注册后可看大图


    各种程序语言的使用情况统计
    (来源:UBM 2014 Market Survey)
    但 C语言已经很“老”了,也受到那样的长寿影响;该语言隐藏了迟钝点,批评者指出,C语言开发者似乎厌恶打字;那大多数来自不良习惯,像是使用非常短的变量 名称(variable names)。任何一种语言都会被滥用,但对比典型的C程序,例如Ada程序代码,有人确实会疑惑为何我们看起来如此简洁,该语言本身就很简洁。
    假设你可以用魔法改变C语言的某一个方面,你会改变哪里、为什么?我会想要摆脱花括号(即{},又称波型括号);我们都曾经历来自深度套迭的程序代码段落之错误以及编译程序抱怨(compiler complaints),我们会搞混需要多少结束括号以及它们该被放置在哪里。
    我比较喜欢需要匹配开始与结束段落,以终结声明(end statement)来指示哪个段落已经结束;例如:

                                   
    登录/注册后可看大图

    这需要打更多字,但任何一个软件开发者如果打字不够快就是入错行了;其好处是更容易了解段落在哪里开始与结束。当然,谨慎地缩排也能告诉我们相同的事情,但今日有太多程序代码被这么多人修改过,原始工程师精心地缩排通常变成无可救药的错位。可能很难知道哪一个括号是结束哪一个段落,被误放的括号可能会让编译程序发疯。
    而深度套迭控制架构当然也可能导致大量连续的“end if”声明,这可能会是例外而不是规则;并没有“银弹”可以拯救我们,但小小的改变,像是利用开始/结束声明而非括号,有可能带来非常大的帮助。
    我通常会在批注的地方针对哪个括号是结束哪个段落做记号,但如果程序语言能像我说的,编译程序能指出遗失以及被混淆的“end”声明岂不是更好?其他有的语言指令就包含卷标的结束声明并因而获益,Ada就是一个最佳案例
    你呢?如果你可以改变C语言的某一个部分,你会想改变什么?又为什么?
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-8 15:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    60

    主题

    5331

    回帖

    1万

    积分

    PADS-181217初级班

    积分
    15973

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2021-2-12 08:41:53 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 100 天

    [LV.6]常住居民II

    0

    主题

    2104

    回帖

    6376

    积分

    二级逆天

    积分
    6376

    终身成就奖特殊贡献奖

    发表于 2021-2-12 09:01:01 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    3952

    回帖

    4862

    积分

    二级逆天

    积分
    4862

    社区居民忠实会员最爱沙发终身成就奖优秀斑竹奖

    QQ
    发表于 2021-2-12 09:42:46 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    43

    主题

    3706

    回帖

    5305

    积分

    二级逆天

    积分
    5305

    社区居民忠实会员社区劳模最爱沙发原创达人终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2021-2-12 09:47:03 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 12:43
  • 签到天数: 67 天

    [LV.6]常住居民II

    61

    主题

    1万

    回帖

    8337

    积分

    二级逆天

    积分
    8337

    终身成就奖特殊贡献奖原创先锋奖社区居民灌水天才奖优秀斑竹奖宣传大使奖忠实会员最爱沙发社区劳模

    QQ
    发表于 2021-2-12 11:56:00 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-3 11:14
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    52

    主题

    2985

    回帖

    1331

    积分

    1元学习Allegro(1期)

    积分
    1331

    社区居民终身成就奖特殊贡献奖优秀斑竹奖

    发表于 2021-2-12 12:03:26 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6218

    回帖

    8731

    积分

    二级逆天

    积分
    8731

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2021-2-13 07:39:47 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    442

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖原创先锋奖

    发表于 2021-2-13 08:54:16 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    9

    主题

    551

    回帖

    761

    积分

    二级逆天

    积分
    761

    终身成就奖

    发表于 2021-2-15 13:32:30 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表