今天我就来和大家聊聊C语言数据类型是如何被大多数计算机系统支持的,可能很多人都不太懂。为了让大家更好地理解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。
问题:
在阅读《C程序设计语言》KR版时,我在[简介,第3页]看到这样一条注释:
因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。
这段用黑体字写的是什么?你能找到一个例子来说明C语言中的某个数据类型或控制结构不被某个计算机系统直接支持吗?
回答:
事实上,C语言中有一些数据类型是不被直接支持的。
在许多嵌入式系统中,硬件上没有浮点运算单元。因此,如果您编写以下代码:
float x=1.0f,y=2.0f
返回x,y;
可以转化为以下形式:
无符号x=0x3f800000,y=0x40000000
return _float_add(x,y);
那么编译器或标准库必须提供。浮动。这会占用嵌入式系统的内存空间。如果我们计算微系统中代码的实际字节数,我们也会发现有所增加。
另一个常见的例子是C语言标准中的64位整数;漫长的。类型出现在1999年之后),并且该类型不能直接在32位系统上使用。古董SPARC系统不支持整数乘法,所以乘法必须在运行时提供。当然,还有一些其他的例子。
其它语言
与其他编程语言相比,有更复杂的基本类型。
比如Lisp中的symbol需要大量的运行时实现支持,比如Lua中的table、Python中的string、Fortran中的array等等。c语言中的等价类型通常不属于标准库(c语言没有标准符号或表),或者更简单,不需要那么多运行时支持(c语言中的数组基本上就是一个指针,以NULL结尾的字符串实现起来也很简单)。
控制结构
异常处理是一种在C语言中不可用的控制结构。非本地出口仅适用于。setjmp );和。隆格普。二、只能提供保存和恢复部分处理器状态。相反,C运行时环境必须首先遍历函数调用堆栈,然后调用析构函数和异常处理程序。
看完以上内容,你对大多数计算机系统是如何支持C语言数据类型的有进一步的了解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/56693.html