“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的早期版本是如此限制性标量,你甚至无法将一个结构对象分配给另一个结构对象(或者将它传递给一个函数/从按值计算的功能).以后,将核心语言中的结构复制添加到C中的能力.直到今天,它仍然是整个核心语言中唯一的非标量操作.
另一方面,C以及其他更高级语言支持对用户定义类型的操作(根据定义,这些类型不是标量),或者支持其他没有硬件立即支持的类型.
附:不,这篇文章试图与矢量操作无关,而与标量操作相反.当然,对向量操作的支持与语言的级别完全正交.您可以使用低级语言以及高级语言进行向量操作.术语标量在我上面描述的意义上使用.