• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

为什么这么多程序员不喜欢C语言?

常见问题收藏 cps12345 6个月前 (07-10) 152次浏览 0个评论

在广泛使用Python和C的同时,我将给出我个人的观点。

  • 有些语言在其他语言中很容易用C语言实现:想要比较2个字符串是否相等(例如if input == "quit")?您可以轻松地使用高级现代语言(例如Javascript或Python)来做到这一点。C吗?不。您必须为此使用一个函数。
    是否要检查给定值是否在数组中?在Python中,只需使用in关键字。在C中……需要一个功能。要连接2个字符串-为此需要一个函数。这将我引向下一点…
  • 缺少数据类型:C没有内置dictionaryset 类似Python的类型。string在C语言中甚至没有真正的数据类型。“字符串”只是指向的指针char。也没有内置的“ bool”数据类型(编辑:显然有一种_Bool 类型(尽管为内置类型赋予的名称相当晦涩))。
  • 缺少OOP:C中没有内置的类或对象的概念(可以使用s和函数指针创建它们的粗略版本,struct但这很难。)
  • 数组糟透了:在您接触C之前,您不会意识到其他语言中的列表易于使用!
    -数组大小是固定的;他们无法调整大小。这不仅给程序员带来了轻微的不便。数组溢出是C程序中最常见的错误源之一(和安全漏洞)。

    -C没有内置的属性或函数来返回数组的长度(有一个宏;但是即使那样,它也不总是起作用)。

  • “ #include”很奇怪:s本质上是它们所引用文件的原始复制粘贴。如果多个源文件在同一个文件中,这将很容易导致编译器错误(标头保护有助于防止该错误;但这仍然比Python的系统难得多)。 #include#includeimport
  • 不直观的标准库函数名称:取而代之的string_to_double()atof()。取而代之的read_line()fgets(),等等。
  • 没有垃圾回收:您必须手动管理内存。第100次分段故障后,它会很累。
  • 数字类型(例如int,float)有一个最大限制(与Python3不同,Python3唯一的限制int是您的内存大小)。这对阵列的大小以及使用大数据的方式设置了基本限制。
  • 没有像Python或Javascript这样的foreach样式循环。C的for循环只是循环的语法糖while

最后,我应该明确地说,我并不是说C是每句话的一种不好的语言。这些设计决定中的许多决定可能在1970年代才有意义,当时计算机的能力降低了,您真的负担不起抽象的内存/计算时间。C还有很多其他好处(它快速,可移植,内存高效等)。但是,与更现代的语言所提供的便利相比,您可以了解为什么有些程序员可能不喜欢C。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址