首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >作为一种“低级”语言,C语言有多“低级”?

作为一种“低级”语言,C语言有多“低级”?
EN

Stack Overflow用户
提问于 2011-02-17 02:00:16
回答 10查看 27.2K关注 0票数 27

我们经常听说C是一种低级语言,但是它到底有多低级呢?我所知道的最低级别是使用指针的内存管理。有没有更深层次的东西我还没发现?“接近硬件”是什么意思?C语言有多“接近硬件”?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-02-17 02:08:26

使用标准术语。高级语言和低级语言。

高级语言是为方便编写语言的人而设计的。

低级语言是为运行该语言的计算机的易用性而设计的。

C语言只是汇编语言的一个进步,汇编语言实际上是机器代码的人工翻译。汇编语言并不比机器代码低,但是人们并不能很好地阅读十六进制,因此汇编语言被认为是最底层的编程语言。

大多数C操作可以被翻译成少于十条机器指令。有些指令可以被翻译成一条机器指令(取决于许多情况)。相比之下,许多高级语言可能需要数十到数千条机器指令来实现特定的操作。

语言的“层次”主要是一个抽象的概念。除了在试图理解您是否必须用一种或另一种语言编写更多源代码,或者您必须更多地了解一种语言与另一种语言的机器体系结构的上下文之外,它没有太多用处。

票数 32
EN

Stack Overflow用户

发布于 2011-02-17 02:04:50

C语言只不过是ASM的一个过程性包装器。一个优秀的C程序员,如果知道该语言背后的内容,应该能够查看代码片段并写出代码将编译成的ASM。这些ASM指令可以1:1翻译成二进制机器指令。它几乎比汇编高出一步,因此你可以写C代码来做计算机能做的任何事情,但是,由于处于如此低的级别,它在你必须具体做什么方面是相对原始的。例如,内存就是这样对待的,而不是抽象成像“堆”这样的结构。在OO语言中创建一个“新”对象就像这么说一样简单;等价的C代码将涉及到该对象所有成员的大小之和的malloc,以及指向块内对象的每个成员的指针。

票数 6
EN

Stack Overflow用户

发布于 2011-02-17 02:05:00

C有时被称为“可移植汇编语言”。基本上,你可以在汇编中做的任何事情,你都可以在C中做(通过语言中内置的功能或通过内联汇编)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5020246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档