C – 只有标量操作?

阅读维基百科:

“The terms high-level and low-level are inherently relative. Some decades ago,the C language,and similar languages,was most often considered “high-level”,as it supported concepts such as expression evaluation,parameterised recursive functions,and data types and structures,while assembly language was considered “low-level”. Many programmers today might refer to C as low-level,as it lacks a large runtime-system (no garbage collection etc),basically supports only scalar operations,and provides direct memory addressing. It therefore readily blends with assembly language and the machine level of cpus and microcontrollers.”

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

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

解决方法

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

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

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

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

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...