C语言数据类型是如何被大多数计算机系统所支持
计算机系统基础 c语言视角

计算机系统基础 c语言视角计算机系统基础从C语言视角计算机系统基础是计算机科学与技术的一门重要课程,它涉及计算机硬件和软件的基本原理与概念。
C语言作为一种广泛应用于系统编程的高级程序设计语言,对于学习计算机系统基础具有重要的视角。
本文将从C语言的角度出发,探讨计算机系统基础的相关内容。
一、C语言的基本特性C语言是一种面向过程的编程语言,其特点是简洁、高效、灵活。
它提供了丰富的数据类型和操作符,并且具有良好的可移植性。
C 语言的程序结构由函数组成,通过函数的调用和返回来完成程序的执行。
这种结构与计算机系统中的指令执行和函数调用非常契合,因此C语言在系统编程中得到了广泛的应用。
二、C语言的内存管理在计算机系统中,内存管理是一个重要的概念。
C语言提供了灵活的内存管理机制,程序员可以手动申请和释放内存空间。
通过使用malloc函数申请内存,程序员可以根据需要动态地分配内存空间。
而通过free函数释放内存,可以避免内存泄漏的问题。
这种内存管理方式为程序的运行效率和资源利用提供了支持。
三、C语言的指针操作指针是C语言中的重要概念,它提供了直接访问内存地址的能力。
指针的使用可以实现对内存中数据的直接操作,提高程序的执行效率。
通过指针操作,可以实现数据的传递和共享,进一步优化系统的性能。
指针还可以与数组和结构体等数据结构进行灵活的组合,实现更复杂的数据操作。
四、C语言的位操作位操作是计算机系统中常用的一种操作方式,它可以对数据的位进行精确的控制。
C语言提供了位操作的运算符,可以对数据的每一位进行与、或、异或等操作。
通过位操作,可以实现对数据的压缩和解压缩,提高存储空间的利用率。
位操作还可以实现数据的快速查找和处理,提高系统的性能。
五、C语言的文件操作文件操作是计算机系统中必不可少的一部分。
C语言提供了丰富的文件操作函数,可以对文件进行读写和管理。
通过文件操作,可以实现数据的永久存储和共享。
C语言的文件操作机制为系统的文件管理提供了良好的支持。
常用编程语言介绍及特点

常⽤编程语⾔介绍及特点C语⾔:特点:1、简洁紧凑、灵活⽅便C语⾔⼀共只有32个关键字,9种控制语句,程序书写⾃由,主要⽤⼩写字母表⽰。
它把⾼级语⾔的基本结构和语句与低级语⾔的实⽤性结合起来。
C 语⾔可以象汇编语⾔⼀样对位、字节和地址进⾏操作, ⽽这三者是计算机最基本的⼯作单元。
2、运算符丰富C的运算符包含的范围很⼴泛,共有种34个运算符。
C语⾔把括号、赋值、强制类型转换等都作为运算符处理。
从⽽使C的运算类型极其丰富表达式类型多样化,灵活使⽤各种运算符可以实现在其它⾼级语⾔中难以实现的运算。
3、数据结构丰富的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共⽤体类型等。
能⽤来实现各种复杂的数据类型的运算。
并引⼊了指针概念,使程序效率更⾼。
另外C语⾔具有强⼤的图形功能, ⽀持多种显⽰器和驱动器。
且计算功能、逻辑判断功能强⼤。
4、C是结构式语⾔结构式语⾔的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独⽴。
这种结构化⽅式可使程序层次清晰, 便于使⽤、维护以及调试。
C语⾔是以函数形式提供给⽤户的,这些函数可⽅便的调⽤,并具有多种循环、条件语句控制程序流向,从⽽使程序完全结构化。
5、C语法限制不太严格、程序设计⾃由度⼤⼀般的⾼级语⾔语法检查⽐较严,能够检查出⼏乎所有的语法错误。
⽽C语⾔允许程序编写者有较⼤的⾃由度。
6、C语⾔允许直接访问物理地址,可以直接对硬件进⾏操作因此既具有⾼级语⾔的功能,⼜具有低级语⾔的许多功能,能够象汇编语⾔⼀样对位、字节和地址进⾏操作,⽽这三者是计算机最基本的⼯作单元,可以⽤来写系统软件。
7、C语⾔程序⽣成代码质量⾼,程序执⾏效率⾼⼀般只⽐汇编程序⽣成的⽬标代码效率低10へ20%。
8、 C语⾔适⽤范围⼤,可移植性好C语⾔有⼀个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适⽤于多种机型。
C++C++语⾔既保留了C语⾔的有效性、灵活性、便于移植等全部精华和特点,⼜添加了⾯向对象编程的⽀持,具有强⼤的编程功能,可⽅便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应⽤软件、系统软件的程序设计。
第2章 数据类型和表达式

„A‟——字符常量 “A”——字符串常量
C程序设计与应用教程 2.2 常量
2.2.5 符号常量 符号常量,即用一个符号(标识符)来代表一个常量。 1.宏定义 2.const限定
C程序设计与应用教程 2.2 常量
2.2.5 符号常量 1.宏定义 宏定义是用指定的标识符来代表一个字符序列
一般形式为:
C程序设计与应用教程 2.2 常量
2.2.3 字符常量
实际上无论是可显示字符还是不可显示字符,都可以 用八进制或十六进制的ASCII码值来表示,表示形式如下: 八进制形式:\nnn,其中nnn表示1~3位的八进制数。
例如,'\n'可以表示为'\15'。
十六进制形式:\xnn(x只能小写,不能大写),其中nn 表示1~2位的十六进制数。
2.3.1 C标识符及其命名 2.标识符的命名
表2-4 一些常用的匈牙利命名法前缀 数据类型 前缀 例子
char
int long string int array char *
c
i l sz ai psz
cInChar
iReturnValue lNumRecs szInputString aiErrorNumber pszInputString
将一个数据存储在变量中有多种实现方式:
③ 利用后面介绍的输入函数scanf( )给变量赋 值。在程序运行期间,暂停程序的运行,等待用户 从键盘输入一个数据,使得该变量获得一个值。 例如:
int x;
scanf(“%d”,&x);
C程序设计与应用教程
2.4
简单的输入输出
输入输出是对计算机主机而言 的。所谓输入,是指从输入设备 (如键盘)向计算机输入待处理数 据的过程;所谓输出,是指计算机 将处理的结果向外部输出设备(如 显示器、打印机等)输出的过程。
C语言程序设计的试题及答案

C语言程序设计的试题及答案大家在考程序员时,C语言程序设计大家有了解吗?下面瑞文网为大家分享了C语言程序设计的试题及答案,供大家参考。
1. 每个 C 程序都必须有且仅有一个函数。
2. C 语言程序开发到执行通常要经过 6 个阶段即、预处理、、链接、加载和执行。
3. 软件是程序,以及、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照详细要求产生的适合于计算机处理的”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和两大类。
6. C 语言是由组成的。
7. C 语言的函数可分为主函数 main、标准库函数和。
8. 一个函数是由两部分组成的,即:和函数体。
9. 编译是将 C 语言所编写的源程序成机器代码,也称为建立目标代码程序的过程。
10. 程序是由某种程序设计语言编制出来,表达了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA) 、管理信息系统(MIS) 、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为。
11. 机器语言是以形式表示的机器根本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13. 在编译程序之前,凡以开头的代码行都先由预处理程序预处理。
14. C 程序的执行均是由执行开始。
15. 函数体即为包含在{ }内的部分。
它分为和为完成功能任务由假设干个 C 语句组成的执行部分。
16. C 语言程序中一条简单语句是以字符作为完毕符的。
17. C 语言是构造化、的程序设计语言。
18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“程序” ,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。
计算机c语言

计算机c语言C语言是一种通用的高级编程语言,被广泛应用于计算机科学和软件开发领域。
它是一种比较底层的编程语言,与计算机硬件的操作相较密切。
本文将介绍C语言的起源和特点,以及其在计算机领域中的应用。
1. C语言的起源和发展C语言最初由贝尔实验室的Dennis Ritchie在20世纪70年代开发出来。
他希望能够创建一种在不同计算机平台上都能运行的编程语言,于是他与Brian Kernighan一起设计了C语言。
C语言以其简洁、高效和可移植性迅速流行起来,成为了计算机科学教育中一门重要的编程语言。
随着计算机的发展和应用广泛性的增加,C语言也不断发展壮大。
C语言被广泛用于操作系统的开发、嵌入式系统程序、游戏开发、编译器构建以及其他众多计算机领域。
C语言的成功鼓励了后来更高级的编程语言的发展,例如C++、Java等。
2. C语言的特点C语言具有许多独特的特点,使其成为计算机编程中的重要工具。
首先,C语言具有高性能和高效性。
C语言的底层特性使得程序能够直接与计算机硬件进行交互,并充分利用计算机资源,从而提高程序的运行效率。
其次,C语言具有丰富的数据类型和运算符。
C语言中包括整型、字符型、浮点型等多种数据类型,以及算术、逻辑、关系等多种运算符,可以满足不同的编程需求。
此外,C语言还具有强大的指针和数组功能。
指针是C语言的一个重要特性,它可以直接访问计算机内存中的数据,从而提高程序的灵活性和效率。
数组是C语言中的一种数据结构,可以方便地存储和处理大量数据。
最后,C语言提供了丰富的库函数。
C语言标准库拥有大量的函数,包括文件操作、字符串处理、数学运算等各种功能,可以简化编程过程,提高开发效率。
3. C语言在计算机领域中的应用由于C语言的高效性和可移植性,它被广泛应用于各个计算机领域。
首先,C语言在操作系统的开发中发挥着重要作用。
许多主流操作系统,如UNIX、Linux和Windows,都是使用C语言编写的。
C语言的高性能和底层特性使得操作系统能够更好地管理计算机资源,并提供高效的运行环境。
第3章基本数据类型与表达式

不要将字符常量与字符串常量混淆。’a‘是字符常量, 而“a‖是字符串常量,二者是不相同的。例: char c; c=‗a‘; 是正确的 c=―a‖; 不正确 因为不能把一个字符串赋给一个字符变量。
字符常量与字符串的区别: (1)字符常量在内存中占一个字节,而字符串不 是; (2)C规定:在每一个字符串的结尾加一个“字 符串结束标志”,以便系统据此判断字符串是否 结束。C语言以‘\0‟作为字符串结束标志。即是 一个“空操作字符”。 注意:在写字符串时不必加‘\0‟,系统会自动加 上的。因此,字符串“a”,它在内存中实际上是 包含2个字符:‘a‟和‘\0‟。 在C语言中可以用字符型数组来存放字符串。
表2.1 Turbo C所支持的整型数据类型
关键字 int unsigned int 所占位数 16 16 最小取值范围 -32768~32767 0~65535
unsigned short int
signed short int
16
16
0~65535
同 int
long int
unsigned long int
例:向字符变量赋以整数。
main()
{ char c1, c2;
c1=97;
/*c1,c2为字符变量*/
c2=98;
printf(―%c printf(―%d } 输出结果: a 97 b 98 %c\n‖ , c1, c2); /* %c是字符输出的格式*/ %d\n‖, c1, c2);
例:大小写字母的转换
程序运行结果为: a+u=22, b+u=-14
3.4 实型数据
3.4.1 实型常量的表示方法
C语言是中级语言
C语言是中级语言C语言是中级语言C语言通常称为中级计算机语言。
中级语言并没有贬义,不意味着它功能差、难以使用、或者比B AS IC、P as ca l那样的高级语言原始,也不意味着它与汇编语言相似,会给使用者带来类似的麻烦。
C语言之所以被称为中级语言,是因为它把高级语言的成分同汇编语言的功能结合起来了。
表1-1表明了C语言在计算机语言中所处的地位。
作为中级语言,C允许对位、字节和地址这些计算机功能中的基本成分进行操作。
C语言程序非常容易移植。
可移植性表示为某种计算机写的软件可以用到另一种机器上去。
举例来说,如果为苹果机写的一个程序能够方便地改为可以在IBM PC上运行的程序,则称为是可移植的。
所有的高级语言都支持数据类型的概念。
一个数据类型定义了一个变量的取值范围和可在其上操作的一组运算。
常见的数据类型是整型、字符型和实数型。
虽然C语言有五种基本数据类型,但与P as ca l或A da相比,它却不是强类型语言。
C程序允许几乎所有的类型转换。
例如,字符型和整型数据能够自由地混合在大多数表达式中进行运算。
这在强类型高级语言中是不允许的。
C语言的另一个重要特点是它仅有3 2个关键字,这些关键字就是构成C语言的命令。
和IBM PC的B AS IC相比,后者包含的关键字达1 59个之多。
C语言是结构化语言虽然从严格的学术观点上看,C语言是块结构(b lo ck-s tr uc tu re d)语言,但是它还是常被称为结构化语言。
这是因为它在结构上类似于A LG OL、P as ca l和M od ul a-2(从技术上讲,块结构语言允许在过程和函数中定义过程或函数。
用这种方法,全局和局部的概念可以通过"作用域"规则加以扩展,"作用域"管理变量和过程的"可见性"。
因为C语言不允许在函数中定义函数,所以不能称之为通常意义上的块结构语言)。
结构化语言的显著特征是代码和数据的分离。
C语言中计算机原理的应用
计 算机 光盘 软件 与应 用
21 第 l 0 2年 O期
C m u e D S f w r n p l c t o s o p t r C o t a e a d A p ia in 工 程 技 术
C语言中计算机原理的应用
李俊 ( 武汉纺 织大学,武汉
40 0 ) 320
中图分类号 :T 321 4 P 1.—
文献标识码 :A 文章编号 :10— 59( 1) 0 09 — 2 07 99 2 2 1— 09 0 0
C 语 言是 一种 具有 汇编 语 言特 点 的,不 仅 能够 进行 计算 机系 计算 机 的 常规语 言 数据 表 示法 如二 进制 和 十进 制表 示法 等 , 统 ,也 可 以进 行 计算 机应 用程 序 语言 设计 的类 型齐 全 、 功能 强大 在计 算机 相 关数 据表 示 中并 不 能够 做 到完 美 。上 述 中讲 到 的 c语 的高 级计 算机 语 言 。它在 计算 机 的应 用程 序 设计 中不 仅 具有 高效 言 ,即 i n t和 l g表 示法 中 ,如果 计算 机 内存 中运 用用 两 字节 的 o n 率 ,而 且可 以 同时适 用于 多个 计 算机 操作 系 统 ,应 用 十分 广泛 。 长度 、补码 表 示形 式来 表示 数据 显 示 ,即是 c语 言 中的 it类型 , n 本 文 将对 C语 言 中计 算 机原 理 的应用 做详 细 的研 究 阐述 。 如果 不存 在 负数 情 况 ,而且 数据 表 示 中不使 用补 码 ,也 不 是用 到 C语言 的特 征 及应用 ln 示 类 型时 ,我 们可 采用 什 么样 的办 法 ,就这 样 ,又 到 了 C og表 C语 言 中有 3 4个 运算 符 ,9种 控制 语句 以及 3 2个 关键 字 。 语言 无符 号类 型 , 即 us ndl g us e t 型 。 ni e n 与 ni di 类 g o n g n 它不 仅 实现 能够 计算机 运 算符 中 其它 各种 语 言程序 难 以实现 的运 除此 之 外 ,还有 使用 与 补码 和 原码 的表 示 不 同的一 种特 定表 即 l t o o be 其表 示 形式 具有 一 定 的复 算 操 作 ,同 时还具 有全 面 、灵活 、快 速 以及 方便 的运 算操 作过 程 , 示方 法 , 浮 点类型 法 f a 和 du l。 是其 它 一些 计算机 语 言汇 编程 序难 以企 及 的 。C 语 言在 计算 机应 杂性 ,运 用 八个 字节 表示 存储 数据 的是 d u l,运 用 四个 字节 表 o be 用 中 出现 时 间 比较早 ,并且 c语言 出现 不 久 ,就 很 快成 为最 受推 示存 储数 据 是 f a。 l t o 崇 的计算 机程 序 系统 应用 之一 。在计 算机 系 统 中,一 些最 基本 的 而作 为 C语言 中的字符 类 型表 示法 ca,他在 实 际语 言数 据 hr 操作 单元 ,如字 节 、地 址 、对 位等 ,C 语言 都可 以很好 的达 到并 的表 示 中 ,在对 字符 表 示 中应用 起 来特 别方 便 。例如 ,在应 用传 实现 。 当然 ,C语 言 自身也存 在有 一 定 的局 限性 , 由于 C语 言本 统 的 二 进制 表 示 法 表 示 系 统 中存 在 的字 母 符 号 或 者 英 文 字 符等 身 比较 “ 高级性 ” 因此 使得 在 实际 的计 算机 应用 系 统 中 比其 它语 时 ,就 可 以先对 字母 符 号或 者英 文字 符 等进 行数 字 编号 ,想 英文 , 言更 难 以把 握 ,计算机 程 序安 全性 能也 相对 存 在一 定 的风 险 。 中 a ,c ,b ,可 编 号为 1 ,3等 ,由此 依次 编排 。最 后 ,还 要 ,2 当今 计 算机 网络 社会 发展 中 , 网络通 讯 、 网上娱 乐等 已经与 对 计 算机 应用 中的 AS 编 码 原理 有一 定 了解 ,即计算 机 中字 符 CI I 人们 生 活密 不可 分 。作 为计 算机 重 要软 件工 具 的 C语言 ,除 了在 编号 的方 式 ,一 个字 符代 表 一个 字节 ,每个 存储 中所 显 示 的字符 计算 机 的软件 开 发 、编程 以及 科研 中得 到广泛 应用 ,另外 ,在 一 其实 就是 每 一个 字符 的编 号 。 些大 型机 床操 控 、机器 制 造 中也离 不 开 C语 言 ,C语言 在计 算机 三 、计 算机 内存 的相 关原 理 应 用 技术 工程 领 域越来 越 受到 欢迎 。 要想 知道 C语 言 中计算 机 原理 的具 体应 用 ,首 先要 对 计算机 二 、计 算机 语言 的数 据表 示 内存 储器 的 内部 构造 及相 关程 序 应用 有 一个基 本 了解 。许 多 人在 要想对 C 语 言程序设计 的有一个 熟练 的把握和 运用 ,首先要从 学 习研究 C语 言之 前只 是模 糊 的知 道一 些计 算机 数 据与 程序 是有 对 C 语言及计算机 的一些初级原理进 行了解开始着 手。除此之外 , 计算 机 的 内存 储 器 ,也就 是主 机 来控 制 的 ,除此 之外 ,对 主机 相 在 C 语言程序运行 原理、数据类型 设定板块 的熟练 领域进行深入详 关结 构 , 内存 储器 相 关构 造一 无 所知 ,这 些情 况 明显 是 不行 ,共 细的研究 ,也 能够很好的为 熟悉 c语言程序 的设计做好铺 垫。 用 体 、 结构 体和 数组 等和 计算 机 内存 结构 有着 紧 密 的联 系 ,如果 迄今 为 止 , 计算 机语 言数 据 的表 示方 法 ,即计算 机语 言 编程 , 在 不 熟悉 了解 计 算机 内存 结构 的基 础 上就 急于 去 了解 C语 言 ,必 在 计 算机 相 关应 用基础 中不是 作 为重 要 部分 出现 ,被 提 到的 也很 然 会 出现 后 期基础 不 足 、跟不 上去 的情 况 。 少 ,一 些计 算机 应用 软件 中 也没有 专 门对 本文 所要 阐述 的 C语言 研 究 C 语 言程 序技 术 的 一个 关键 重 点之 处 是 在 于对 于计 算 给予 更 多关注 。因此 ,在 C语 言 的把握 和理 解 上 ,首先 要抛 开之 机 内存 的容量 、结构 与编 址等 ,其 中 以编 址 为核 心 内存 的基本 知
c语言的优点介绍
c语言的优点介绍c语言的优点介绍1、简洁紧凑、灵敏方便C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。
把高级语言的根本构造和语句与低级语言的实用性结合起来。
C 语言可以像汇编语言一样对位、字节和地址进展操作,而这三者是计算机最根本的工作单元。
2、运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。
C 语言把括号、赋值、强迫类型转换等都作为运算符处理。
从而使C语言的运算类型极其丰富,表达式类型多样化。
灵敏使用各种运算符可以实如今其它高级语言中难以实现的运算。
3、数据类型丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、构造体类型、共用体类型等。
能用来实现各种复杂的数据构造的运算。
并引入了指针概念,使程序效率更高。
4、表达方式灵敏实用C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵敏。
它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进展操作由于C语言允许直接访问物理地址,可以直接对硬件进展操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,可以像汇编语言一样对位(bit)、字节和地址进展操作,而这三者是计算机最根本的工作单元,可用来写系统软件。
6、生成目的代码质量高,程序执行效率高C语言描绘问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。
C语言一般只比汇编程序生成的目的代码效率低10%~20%。
7、可移植性好C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。
在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强C语言有丰富的数据构造和运算符。
包含了各种数据构造,如整型、数组类型、指针类型和结合类型等,用来实现各种数据构造的运算。
第2章基本数据类型
例2-2 如有unsigned short j; scanf("%lu", &j);,则当用户输 入-1时,变量j的值是多少?
变量j是无符号短整型,取值只能是非负数, 当用户输入-1时,会出错吗? 不会的!
整个处理过程与语句unsigned short j = -1; 的执行过程类似。 长度修饰符l对输入有何影响?
整型变量的输出值
2.1.3.3 验证程序中变量的实 际值是确定的
虽然printf函数在输出变量的值时不考虑变量 的类型,而仅仅根据格式字符来确定输出值; 理论上,变量的类型是确定的,变量的实际 值自然也是确定的;但能否编程“证明”变 量的实际值是确定的呢? 设一个short型变量i,它的存储状态为16个1, 那么它的实际值是-1还是65535呢?
思路二:变量i的值究竟是-1 还是65535?
由于两个整数相除的商通常只取整数部分, 故当除数为负数且不能整除时,模运算结果 的符号与被除数的符号相同。
如果变量i的值为65535,则i % -2的结果
为1;如果变量i的值为-1,则i % -2的结果
为-1
2.1.3.4 长度修饰符对输入的 影响
计算机中存储单元的编码特点不仅决定了C 语言数据类型的特点,而且也决定了计算机 的“计算”能力。计算机能算多大整数的和?
如果计算机用2个字节的存储单元存储整数?
整型
计算机中的整型存储单元用于存储整数,根 据编码长度和编码方式分类。 关键字int可用于定义整型变量,如int i;所示。
在TC中,int型变量i占两个字节,而在VC6.0 中,int型变量i用4个字节编码。 两个字节的二进制数最多可以表示(编码) 多少个整数?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言数据类型是如何被大多数计算机系统所支持?
问题:
在读K&R版的The C Programming Language一书时,我在[介绍,第3页]看到这样一条说明:因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。
这段黑体说明了什么?能否找到一个例子来说明C语言中的某种数据类型或控制结构不被某种计算机系统直接支持呢?
回答:
事实上,C语言中确实有不被直接支持的数据类型。
在许多嵌入式系统中,硬件上并没有浮点运算单元。
因此,如果你写出下面的代码:
float x = 1.0f, y = 2.0f;
return x + y;
可能会被转化成下面这种形式:
unsigned x = 0x3f800000, y = 0x40000000;
return _float_add(x, y);
然后编译器或标准库必须提供'float add()'的具体实现,这会占用嵌入式系统的内存空间。
依此去计算代码在某个微型系统(译者注:也就是指微型嵌入式系统)的实际字节数,也会发现有所增加。
另一个常见的例子是64位整型数(C语言标准中'long long'类型是1999年之后才出现的),这种类型在32位系统上也不能直接使用。
古董级的SPARC系统则不支持整型乘法,所以在
运行时必须提供乘法的实现。
当然,还有一些其它例子。
其它语言
相比起来,其它编程语言有更加复杂的基本类型。
比如,Lisp中的symbol需要大量的运行时实现支持,就像Lua中的table、Python中的string、Fortran中的array,等等。
在C语言中等价的类型通常要么不属于标准库(C语言没有标准symbol或table),要么更加简单,而且并不需要那么多的运行时支持(C语言中的array基本上就是指针,以NULL结尾的字符串实现起来也很简单)。
控制结构
异常处理是C语言中没有的一种控制结构。
非局部的退出只有'setjmp()'和'longjmp()'两种,只能提供保存和恢复某些部分的处理器状态。
相比之下,C++运行时环境必须先遍历函数调用栈,然后调用析构函数和异常处理函数。
via:stackoverflow
作者:Dietrich Epp译者:KayGuoWhu校对:wxy
【编辑推荐】
BASIC语言诞生五十周年
为什么“auto a = 1;”在C语言中可以编译通过?
Python运维项目中用到的redis经验及数据类型
C语言的那些小秘密之函数指针
分享一份C语言写的简历。