c - C的主要缺陷

标签 c language-design

<分区>

C语言的主要缺陷是什么?在面试中应该如何回答这个问题?我的意思是,与较新的语言相比,C 现在缺少什么?

最佳答案

C 可能是有史以来最重要的单一语言。

C 确实实现了它所有的近期目标,而且远不止于此。它确实没有“缺陷”,本身,而是选择,这将它定义为理想的系统实现语言和可接受但不完美的应用程序语言。

当 C 在 70 年代初期突然出现时,它正在与 Fortran、Basic、Cobol,尤其是汇编竞争。正如他们所说,它吃了他们各自的午餐,并将它们作为实现语言埋葬了。只有 Fortran 幸存下来,虽然很少有程序可以用 Fortran 表达,但不能用 C 表达。

直到今天,C 偶尔也会在 the Tiobe index 上排名第一,仅次于更专业且非常流行的 Java。

当然,对于动态和符号应用程序,C 可能无法与 Ruby、Lisp 或 Python 相提并论,但它们当时不存在,对实现没有用处。这三者通常都是用 C 语言实现的,有点“笑到最后”。 Ruby 在内部是 200,000 行 C。

所以是的,它没有实现所有可能的编程范例。并回答您的具体问题:

  1. C 不是反光的
  2. C 没有垃圾回收
  3. C 不直接实现闭包
  4. 静态类型:C 是最终的“编译时”语言处理器。
  5. C 不是直接面向对象的,C 中的类对象包往往很笨重,没有人使用它们。
  6. C 不是类型安全的。 (但可以以类型安全的方式使用。)
  7. C 不是内存安全的。 (没有保证,但有时可以以最安全的方式使用。)
  8. 运营商的优先事项太多。
  9. 一些运算符优先级似乎没有最有用的优先级。
  10. C 是纯命令式的。

总的来说,C 是一种结构化的高级语言,可以在其中构建任何东西,但它不具有允许更大、更复杂的反射和面向对象的属性程序和抽象。编写 C 语言的天才可以做任何事情,但我们大多数人应该在我们的问题领域允许时使用更高级的语言。

关于c - C的主要缺陷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509029/

相关文章:

c# switch 语句比 vb.net 'case' 更受限制

c - "cannot find -lcrypto -lssl"在 Windows 上使用 OpenSSL 并使用 MinGW

c++ - 在接收管道数据的应用程序中使用 mmap() 吗?

php - 为什么 PHP 属性不允许函数?

java - 我们可以以编程方式更改语言语法吗?

.net - 编写使用 .NET 的语言的优点、缺点和困难

java - Scala(和Java)中的类和类型有什么区别?

c - C 中 getch() 的问题

c++ - 与使用早期版本的 Visual Studio 构建的第 3 方静态库链接时出错

c - 递归函数?