C - 只有标量操作?

时间:2010-02-28 04:29:48

标签: c scalar

阅读维基百科:

  

“高级别和低级别的术语本质上是相对的。几十年前,C语言和类似语言通常被认为是”高级“,因为它支持表达式评估,参数化递归等概念函数,数据类型和结构,而汇编语言被认为是“低级”。今天许多程序员可能将C称为低级,因为它缺少大型运行时系统(没有垃圾收集等), < em>基本上只支持标量操作 ,并提供直接内存寻址。因此很容易与汇编语言和CPU和微控制器的机器级别相结合。“

http://en.wikipedia.org/wiki/High_level_language

这究竟是什么意思?其他编程语言提供哪些操作哪些C没有?

1 个答案:

答案 0 :(得分:14)

鉴于文章的上下文和主题,文章所指的是术语“标量”,因为它是用C语言本身定义的。在C语言中,算术类型和指针类型一起被称为标量类型(见6.2.5 / 21)。在日常用语中,我们经常会看到这些类型被称为基本类型或内置类型(而正确的正式术语又是标量 )。关键是标量类型旨在成为硬件立即(或几乎立即)支持的类型。 C中的大多数非概念操作仅在标量类型和标量类型上运行。

如果你看看C语言的历史,你会发现C的早期版本是如此限制性地标量,你甚至无法将一个结构对象分配给另一个结构对象(或通过值将其传递给函数/从函数返回)。以后,将核心语言中的结构复制添加到C中的能力。直到今天,它仍然是整个核心语言中唯一的非标量操作。

另一方面,C ++以及其他更高级语言支持用户定义的类型的操作,根据定义,它们不是标量,或者是其他类型的硬件没有立即支持。

P.S。不,文章试图与 vector 操作无关,而与标量操作无关。当然,对向量操作的支持与语言的级别完全正交。您可以使用低级语言以及高级语言进行向量操作。术语标量在我上面描述的意义上使用。

相关问题