gpt4 book ai didi

c - 知道 C 会让我用任何其他语言编写更好的代码的例子是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:32:59 25 4
gpt4 key购买 nike

在 Stack Overflow 播客中,Joel Spolsky 不断地对 Jeff Atwood 喋喋不休地说 Jeff 不知道如何用 C 编写代码。他的说法是“了解 C 可以帮助您编写更好的代码”。他还总是使用一些涉及字符串操作的故事,以及了解 C 如何让您用不同的语言编写更高效的字符串例程。

作为一个懂一点 C,但喜欢用 perl 和其他高级语言编写代码的人,我从来没有遇到过我可以用 C 来解决的问题。

我正在寻找现实世界中的例子,在这些例子中,在使用 perl 或 python 等高级/动态语言编写项目时,了解 C 会很有用。

编辑:阅读你们提交的一些答案非常棒,但在这方面对我来说仍然没有任何意义:

以 strcat 为例。在 C 中组合字符串有正确的方法和错误的方法。但为什么我(作为高级开发人员)认为我比 Larry Wall 更聪明?为什么语言设计者不能以正确的方式编写字符串操作代码?

最佳答案

Joel Spolsky 使用的经典示例在 misuse of strcat and strlen 上,并发现一般的“Shlemiel the painter”算法。

并不是说您需要 C 来解决高级语言无法解决的问题,而是了解 C 可以让您了解所有这些语言级别下发生的事情,从而使您能够编写更好的软件。因为正是这样的观点可以帮助您避免编写您不知道的代码,例如,实际上是 O(n^2)。

编辑:一些基于评论的澄清。

了解 C 并不是此类知识的先决条件,有很多方法可以获得相同的知识。

了解 C 也不能保证具备这些技能。您可能精通 C,但仍然用您接触的所有其他语言编写可怕、难看、笨拙的代码。

C 是一种低级语言,但它仍然具有现代控制结构和功能,因此您不会总是陷入繁琐的细节之中。如果不掌握某些基础知识(例如内存管理和指针的细节),就很难精通 C,而掌握这些基础知识通常在使用任何语言时都会带来丰厚的返回。

它总是关于基础知识。

在许多追求和软件工程中都是如此。使最好的程序员成为最好的并不是 secret 的咒语,而是对基础知识的更好掌握。经验表明,C 的知识往往与掌握其中某些基础知识具有更高的相关性,并且学习 C 往往是获取此类知识的更简单和更常见的途径之一。

关于c - 知道 C 会让我用任何其他语言编写更好的代码的例子是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com