C 编程语言概述 毕业设计 外文翻译 中英文对照版 绝对强悍.pdf_第1页
C 编程语言概述 毕业设计 外文翻译 中英文对照版 绝对强悍.pdf_第2页
C 编程语言概述 毕业设计 外文翻译 中英文对照版 绝对强悍.pdf_第3页
C 编程语言概述 毕业设计 外文翻译 中英文对照版 绝对强悍.pdf_第4页
C 编程语言概述 毕业设计 外文翻译 中英文对照版 绝对强悍.pdf_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 c 编程语言概述编程语言概述 c c c 的历史的历史 c 程序语言是建立在 c 和 c 程序语言的精神上的 这个账目有着很有力的特征和易 学的曲线 不能说 c 与 c和 c 相同 但是因为 c 是建立在这两者之上 微软移除了一些 成为更多负担的特征 比如说指针 这部分观看 c 和 c 在 c 中追踪它们的发展 c 程序语言原本是被定义在 unix 操作系统中的 c 过去经常编写一些 unix 的应用程 序 包括一个 c 编译器 最后被用于写 unix 自己 它普遍认可在这个学术上的竞争扩展 到包含这个商业的世界 并且像微软和 borland 这样的软件供应商发放了 c 编译器在个人电 脑上 最初的 windows api 被定义与使用 c同 windows 代码一起工作 并且直到今天至少 设置核心的 windows 操作系统 apis 保持 c 编译器 来自一个定义的观点 c 缺乏一个细节就像 smalltalk 这类语言也包含的一样 一个对 象的概念 你将会学到更多的关于对象的内容在第八章 写面向对象的代码 目前 思考 一个对象作为一个数据的收集并且设置了一些操作 使我们能够执行这些数据 对象类型的 代码可以被 c 来完成 但是对象的观念并不能被强制出现在这个语言中 如果你想要构造 你的代码使之像一个对象 很好 如果你不想这么做 c 也确实不会介意 对象并不是一个 固有的部分在这门语言中 很多人并没有花很大的经历在这个程序示例中 当面向对象的观点的发展开始得到认可之后 很明显 c 需要被精简去包含这种全新的 思考代码的方法 c 被开发出 包含了这种改良 它被定义去兼容 c 就像所有的 c 程序 同样也是 c 程序 并且可以被 c 编译器编译 c 语言主要的增加是提供这种新的概 念 c 又额外提供了的类 对象的模板 并且激活了全部的 c 程序关于对象方面和它的 行为的衍生 c 语言是 c 语言之上的改良体 但是它仍有一些缺陷 c 和 c 很难获得一个处理在 不熟悉的不常用的语言上 例如 vb c 和 c 是很底层的 而且需要你错大量的编码来使 你的应用程序很好的运行 你不得不写一些自己的代码区处理一些问题 就像存储器的而管 理和错误检查 c 和 c 可以处理在一些非常给力的应用程序中 但是你不得不保证你的代 码工作的很流畅 一个漏洞可以使得整个应用程序死机或者发生出乎意料的行为 因为 c 被设定的目标是保持对 c 的兼容 c 不能够打破 c 的底层特性 微软定义的 c 保留了很多 c 和 c 的语句 对那些语言熟悉的开发者可以找出 c 的代 码并且能想对快地识别代码 对于 c 来说一个很大的优势是它的设计师并没有让它去兼容 c 和 c 当这看起来或许是个错误的处理时 事实上是一个好消息 c 剔除了一些使得 c 和 c 工作起来很困难的东西 因为所有的 c 代码也是 c 代码 c 不得不保持所有的原 始怪癖和在 c 中发现的缺陷 c 正在开始一个清洁的石板并且没有任何兼容需求 因此它 能够保持前辈的强项并且丢弃使得 c 和 c 程序生存困难的弱点 引进引进 c 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 c 这门在 net 体系中被引进的全新语言 是从 c 衍生出来的 然而 c 是一门流行 的 面向对象的 从头到尾 类型安全的语言 语言特征语言特征 下面的部分提供了一个快速的视角关于 c 语言的一些特征 如果它们中的某些概念对 你来说很陌生 不要着急 所有的东西都将在后续章节中详细说明 类类 在 c 中 所有的代码和数据都必须被附在一个类中 你不能在类外定义一个变量 同 样的你也不能写任何不在类中的代码 当一个类的对象被创建并且运行时 类就被构造了 当类的对象被释放时 类也就被销毁了 类提供了单继承 所有的类最终从基类获取的东西 就是对象 随着时间的推移 c 提供了有版本的技术去帮助你的类的形成来保养代码的兼 容当你使用你更早期的类的代码的时候 下面让我们来看一个叫做 family 的类的例子 这个类包含了两个静态的域来保存家庭 成员的第一个名字和最后一个名字 同样的 有一个方法来返回家庭成员的全名 class class1 public string firstname public string lastname public string fullname return firstname lastname 注 单继承意味着一个 c 类只能从一个基类中继承 c 是你能够打包你的类放到一个被称作 namespace 类的集合里面 namespaces 有名字 并且可以在逻辑聚合上帮助安排类的收集 当你开始学习 c 的时候 很明显所有的 namespace 都是和 net 类型的系统相关的 微软同样选择包含了一些类辅助于兼容以前的 代码和 api 的通道 这些类同样包含在微软的 namespace 中 数据类型数据类型 c 让你使用两种类型的数据工作 值类型和引用类型 值类型保存实际的值 引用类 型保存实际的值储存在存储器别处的位置 原始的数据类型 例如字符型 整型 浮点型 枚举型还有结构体类型 这些都是值类型 而对象和数组类型被处理成了引用类型 c 预 定义了引用类型 对象和字符串 同业也预定义了值类型 短字符 短整型 整型 长征 新 字节 无符号短整型 无符号整型 无符号长整型 浮点型 双精度浮点型 布尔型 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 字符型和小数类型 你同样可以定义你自己的值类型和引用类型在你自己的代码中 所有 的值类型和引用类型最终都会被一个基本类型的对象执行 c 同样允许你将一个值或者一个类型转变为另外一个值或一种类型 你可以使用隐式 的转换策略或者显式的转换策略 隐式的转换策略总是成功并且并不丢失任何信息 例如 你可以将一个整型转换为一个长整型而不用丢失任何信息因为长整型比整型长 显式的转 换策略可能会是你丢失一些数据 例如 讲一个长整型转换为一个整型或许会导致一些数据 丢失因为长整型可以比整型保留更多的值 你必须写一个预测操作在你的代码中来使显式 转换发生 前后引用 参考第三章 同变量一起工作 来找到更多的关于显式和隐式转换策略的信息 你可以同时使用单维和多维的数组在 c 中 多维数组能够变成一个矩阵 当这个矩阵 与多维数组有相同的面积大小 或者参差不齐的 当有些数组有不一样的面积大小 类和结构体可以拥有数据成员被称为属性和字段 域是和封起来的类或结构体相关联的 变量 你可以定义一个叫做 employee 的结构体 例如 有一个被称作 name 的域 如果你 定 义 了 一 个employee类 型 的 变 量 叫 做currenremployee 你 可 以 通 过 写 currentemployee name 取回这些雇员的名字 属性就像域 但是可以让你写代码来阐述当代 码赋值之后什么应该发生 如果雇员的名字必须被一个数据库读 例如 你可以写一个代码 当一些人询问名字属性的值时 从数据库中读名字 并且返回这个名字用 string 类型 函数函数 一个函数是一种可以随时使用的代码 当原始代码调用它时可以返回也可以不返回值给 代码 一个函数的例子将会像 fullname 函数更早的展示的那样 在这一章中 在 family 类 中 一个函数通常会联合一些返回信息的代码 而一个方法通常不返回信息 然而对于我们 而言 我们一般都会把它们都归结于函数 函数可以拥有四种参数 输入的参数有值传递到函数内 但是函数无法改变它们的值 输出的参数没有值当他们被传递给函数时 但是函数可以给它们值并且将这个值 传回给它的调用者 引用参数通过引用传递另外的一个值 它们有一个值进入函数 并且这个值可以 在函数中被更改 参数参数在列表中定义了一个数组变量 c 和 clr 一同工作来提供自动的存储管理 你不需要写 为一个整数分配足够的内存 或者 留足够的空间让这个对象使用 这样的代码 clr 监视你的内存使用并且自动的取 回更逗当你需要它的时候 他同样自动的清理内存当它发现它不再被需要使用时 这个以垃 圾回收而著名 c 提供了大量的运算符使得你能够写大量的数学和逐位运算的表达式 他们当中的大 量 并不是所有 运算符可以被重新定义 是你能够改变这些运算符的工作 c 提供了一个长的报表的清单是你能够定义各种各样的处理路径通过你的代码 通过 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 报表的操作 使用关键字 就像 switch while for break 和 continue 能够使你的代码根据变量 值的不同分入到不同的路径中 类能够包含代码和数据 每一个类成员都有一个被称作可接近的范围 它定义了这个成 员对其他对象的可见性 c 提供了 public protected internal protected internal 和 private 这些可接近的范围 变量变量 变量可以被定义为常量 常量有固定的值并且在你的代码执行的过程中不能被改变 这 个 pi 的值 例如 是一个很好的常量的例子 因为她得值将不会被改变在你的代码运行过 程中 枚举类型详细的定义了一种有关常量的名称 例如 你可以定义一个枚举类型的行星 使用值为 mercury v enus earth mars jupiter saturn uranus neptune pluto 并且使用它们的名字 在你的代码中 如果你使用一个变量去表示行星的时候 用这个枚举类型的 names 可以使 你的代码变的更易读 c 提供了一个嵌入式的机制去定义和处理一些事件 如果你写了一个类执行了很漫长 的操作 你或许想调用一个事件当这个运算结束的时候 客户可以签署这个事件并且抓住这 个事件在他们自己的代码中 它可以让他们被通知当你已经完成了你的漫长的运算 这个事 件处理机制在 c 中使用了委托 一个引用函数的变量 注 事件处理是一个在你代码中的程序 当一个事件发生时它决定了什么动作将会发生 例如用户点击了一个按钮 如果你的类保存了一个值 客户将会想要访问这个值就好像你的类是一个数组 你可以 写一些叫做分度器的代码是你的类可以被访问就好像它是一个数组 假定你写了一个叫做 rainbow 的类 例如 它包含了一套颜色在这个彩虹中 访问者或许想要些 myrainbow 0 来取出在彩虹中的第一个颜色 你可以写一个分度器在你的 rainbow 类中来定义什么将会 被返回当这个访问者访问你的类时 就好像它是一个值的数组 接口接口 c 提供了接口 它聚集了属性 方法 和阐述一套功能的事件 c 的类可以执行接口 它通过接口告诉使用者这个类提供的一整套功能文件 你可以发展接口的装置而不用妨碍任 何现有的代码 它能尽可能少的兼容问题 曾经有一个接口被公开了 它不能被改变 但是 它能够通过继承来进化 c 的类能够执行许多接口 即使这个类只能从一个基类继承 让我们看一个现实世界的 c 中有利于举例说明接口的非常明确的规则的例子 许多应 用程序尅使用今天提供的添加项 假设你已经为一个应用程序别写了一段代码 这段代码在 执行的时候有读取添加项的能力 要做这些 这个添加项必须遵守一些规则 dll 添加项 必须展示一个叫 ceentry 的函数 并且必须使用 ced 作为 dll 文件名的开头 当我们运行 我们的代码时 它可以扫描正在工作的以 ced 开头的所有 dll 的目录 当它发现了一个 就被读取下来 然后它用 getprocaddress 来找出 dll 中的 ceentry 函数 由此证明你服从 所有的规则去建立一个添加项是必要的 这种创建读取添加项的方式是非常烦人的 因为它 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 担负了更多的不必要的代码责任 如果我们使用一个接口在这个例子中 你的 dll 添加项 可以应用于一个接口 由此保证所有必须的方法 属性和事件出现在 dll 中 和作为文件 指定的函数 属性属性 属性声明了额外的信息关于你的类对于 clr 在过去 如果你想要自己描述你的类 你不得不用一些分散的途径在存放在外部的文件中 例如 idl 或者事件的 html 文件 通 过你的努力 属性解决了这个问题 这个发展者 约束了一些信息在类中 任何种类的信息 例如 你可以使用属性去将文件信息嵌入到类中 属性同样可以被用于约束运行时间的信息 在类中 定义它怎么行动当它被用到的时候 可能性是没完没了的 这也是为什么微软会包 含很多预定义的属性在 net 结构里 编译编译 c 运行你的 c 代码通过 c 编译器产生了两类重要的信息 代码和元数据 接下来的部分 描述了这两种主题并且完成了建立在 net 代码上的一块二进制的审查 那就是汇编 微软中间语言 msil 被 c 编译器输出的代码是写在一种叫做微软中间语言中的 msil 是用来构造一套详 细的说明来指导你怎样执行的你的代码 它包含了操作的说明 例如变量的初始化 唤起对 象的方法 错误处理以及声明一些新的东西 c 并不仅仅是一种在编写过程中变化的来自 msil 源代码的语言 所有的 net 兼容的语言 包括 vb net 和 c 管理 当它们的源代 码编译完成后产生了 msil 因为所有的 net 语言编译器都是同样的 msil 说明设置 而且 所有的 net 语言都是用相同的运行时间 所以来自不同语言的和不同编译器的代码可以很 方便地在一起工作 对于物理 cpu 而言 misl 并不是一套明确的指令 它不知道任何关于你机器 cpu 的 事 同样的你的机器也不知道任何有关 msil 的事 那么 当你的 cpu 不能读取 msil 的 时候 你的代码将如何运作呢 答案就是当代码第一次 unxing 时 msil 代码被转入了 cpu 说明代码中 这个击沉被称作恰好够用编写 或者 jit jit 编译器的工作是翻译你的普遍 性的 msil 代码给机器以便 cpu 可以执行你的代码 你也许想知道在进程中一个额外的步骤是什么样的 当一个编译器可以立刻产生 cpu 解释的代码是为什么 msil 产生了 终究 编译器总之在之后做了这些 这里有很多引起这 个的原因 首先 msil 使你能够较容易的编写代码当它移动到一个不同的硬件中 假设你 已经写了一些 c 代码 并且你想让它同时运行在你的台式机和手提设备上 非常有可能的 是这两种设备有着不同的 cpu 如果你只有一个 c 编译器其目标是一个明确的 cpu 那么 你就需要两个 c 编译器 一个的目标是台式机的 cpu 另一个的目标是手提设备的 cpu 你不得不编译你的代码两次 以确保你的正确代码使用在了正确的设备上 有了 msil 你 只用编写一次 安装了 net 结构在你的台式机里 它包含了一个 jit 编译器用来翻译你的 msil 中的 cpu 特定代码给你的机器 安装了 net 结构在你的手提设备中 它包含了一个 jit 编译器用来翻译同样的 msil 中的 cpu 特定代码给你的手提设备 你现在仅仅有一个可 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 以运行在任何拥有 net jit 编译器的设备上的 msil 基本代码 在这些设备上的 jit 编译器 能够照顾你的代码使他们运行的很顺利 另外一个编译器使用msil的原因是指令的设置能够很容易地被一个认证近程读取 jit 编译器的一部分工作就是核实你的代码以确保它能够尽可能的清晰 检查进程确保你的进程 正确地访问内存 并且它使用了正确的变量类型当一个方法被调用并且被期望一个明确的类 型时 这些检查确保了你的代码不会执行任何能够使你代码崩溃的指令 msil 指令设置定 义使得这个检查进程想对地易懂 cpu 特定指令设置是为了快速执行代码而优化的 但是 它们使得代码难以被阅读 也因此很难被检查 有一个可以立刻输出 cpu 特定代码的 c 编译器能够使代码的检查很困难或者甚至不可能 允许 net 结构的 jit 编译器核实你的代 码以确保你的代码通过一个漏洞很大的路径访问内存并且变量类型会被正确地使用 元数据元数据 汇编进程同样额输出元数据 这是一个很重要的一部分 net 代码分享的故事 不论你 要用 c 去建立一个客户端的应用程序还是用 c 去建立一个被一些人用在应用程序上的类 库 你都会想要利用一些已经编译好的 net 代码 那个代码或许被微软提供了一部分 net 结构 或者它也许被一些网上的用户提供 使用外来代码的关键是让 c 编译器知道那个类 和那个变量在另外的基础代码中以便它能够在你工作的预编译中发现并将你写的代码与源 代码相匹配 将元数据看目录对于你的编译代码而言 c 编译的源代码位数在编译代码中和 msil 的生成一同存在 这个元数据准确地描述了所有你写的类以及它们怎样被构架起来 所有类 的方法和变量的类型完全地在元数据中被描述 准备好被其他应用程序来读取 例如 vb net 可以从一个 net 库中读取元数据来提供对一个特定的类来说列出的所有能够被有 效使用的方法的智能感应的能力 如果你已经使用 com 进行工作 你或许熟悉了类型库 类型库的目标是提供同样的目 录功能给 com 对象 然而 类型库从一些局限之处提供 事实上并不是所有的关于目标的 数据都能被放入类型库中 在 net 中的元数据并不具有这个缺点 所有的用来描述类的信 息的代码被放置在元数据中 你可以把元数据看做拥有所有com类型的好东西而没有缺点 构件构件 有时 你需要用 c 去建立一个终端的应用程序 这些应用程序被打包成一个可执行的 文件并且使用 exe 作为扩展名 windows 也是使用 exe 文件来运行一个应用程序的 并且 c 完全地支持 exe 文件的建立 然而 也会有几次你不想建立一个完全的应用程序 代替它的是你想建立一个代码库可 以被用于其它的程序 你也许会想要建立一些实用的 c 类 比如传给一个想要使用你的类 在 vb net 应用程序中的 vb net 的开发者 在这种情况下 你将不会建立一个应用程序 取而代之的你将建立一个构件 一个构件是一个元数据的代码包 当你配置了一套类在一个构件中 你正在把这个构件 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 当做一个单元来配置 并且这些类将会分享同样层级的版本控制 安全信息和动态需求 将 构件看做一个逻辑的 dll 如果你对微软的翻译服务或者 com 很熟悉 那么你可以把构 件看做与 net 等价的包 有两种构件 私有构件和全局构件 当你建立了你自己的构件 你不需要指明你是想建 立一个全局的构件还是私有的构件 明显不同的是 当你配置你的构件时 使用私有构件时 你只能使你的代码被单独的应用程序访问 你的构件是一个类似于 dll 的包 并且被安装 进同样的目录当你的应用程序运行它时 展开这个私有构件时 单独的可以使用你的代码的 应用程序是在与你构件相同目录下时才可执行的 如果你想要在更多的应用程序中分享你的代码 你或许要考虑将你的代码配置成为一个 全局的构件 全局构件可以被任何系统的 net 应用程序使用 而不用考虑它被安装在哪个 目录中 微软装配构件作为 net 结构的一部分 并且每个微软构件被安装作为一个全局构 件 net结构在一个被称作全局构件存储器的设备中包含了一个列表的全局构件 并且 net 微软结构 sdk 中包含了公用的可以从全局构件存储器中安装和删除构件的功能 c 在某种程度上可以看作是 net 面向 windows 环境的一种编程语言 在过去的十几年 里 microsoft 给 windows 和 windows api 添加了许多功能 vb和 c 也经历了许多变化 虽然 vb和 c 最终已成为非常强大的语言 但这两种语言也存在问题 因为它们保留了原 来的一些内容 对于 visual basic 来说 它的主要优点是很容易理解 许多编程工作都很容易完成 基本 上隐藏了 windows api 和 com 组件结构的内涵 其缺点是 visual basic 从来没有实现真正 意义上的面向对象 所以大型应用程序很难分解和维护 另外 因为 vb的语法继承于 basic 的早期版本 basic 主要是为了让初学者更容易理解 而不是为了编写大型商业应用程序 所以不能真正成为结构化或面向对象的编程语言 另一方面 c 在 ansi c 语言定义中有其自己的根 它与 ansi 不完全兼容 因为 microsoft 是在 ansi 定义标准化之前编写 c 编译器的 但已经相当接近了 遗憾的是 这导致了两个问题 其一 ansi c 是在十几年前的技术条件下开发的 因此不支持现在 的概念 例如 unicode 字符串和生成 xml 文档 某些古老的语法结构是为以前的编译器设 计的 例如成员函数的声明和定义是分开的 其二 microsoft 同时还试图把 c 演变为一种 用于在 windows 上执行高性能任务的语言 在语言中避免添加大量 microsoft 专用的关 键字和各种库 其结果是在 windows 中 该语言成为了一种非常杂乱的语言 让一个 c 开发人员说说字符串有多少个定义方式就可以说明这一点 char lptstr string cstring mfc 版本 cstring wtl 版本 wchar t 和 olechar 等 现在进入 net 时代 一种全新的环境 它对这两种语言都进行了新的扩展 microsoft 给 c 添加了许多 microsoft 专用的关键字 并把 vb演变为 vb net 保留了一些基本的 vb语法 但在设计上完全不同 从实际应用的角度来看 vb net 是一种新语言 在这里 microsoft 决定给开发人员另一个选择 专门用于 net 具有新起点的语言 即 visual c net microsoft 在正式场合把 c 描述为一种简单 现代 面向对象 类型非常安 全 派生于 c 和 c 的编程语言 大多数独立的评论员对其说法是 派生于 c c 和 java 这种描述在技术上是非常准确的 但没有涉及到该语言的真正优点 从语法上看 c 非常类似于 c 和 java 许多关键字都是相同的 c 也使用类似于 c 和 java 的块结构 并用括号 来标记代码块 用分号分隔各行语句 对 c 代码的第一印象是它非常类似 于 c 或 java 代码 但在这些表面上的类似性后面 c 学习起来要比 c 容易得多 但比 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 java 难一些 其设计与现代开发工具的适应性要比其他语言更高 它同时具有 visual basic 的易用性 高性能以及 c 的低级内存访问性 c 包括以下一些特性 完全支持类和面向对象编程 包括接口和继承 虚函数和运算符重载的处理 定义完整 一致的基本类型集 对自动生成 xml 文档说明的内置支持 自动清理动态分配的内存 可以用用户定义的特性来标记类或方法 这可以用于文档说明 对编译有一定的影 响 例如 把方法标记为只在调试时编译 对 net 基类库的完全访问权 并易于访问 windows api 可以使用指针和直接内存访问 但 c 语言可以在没有它们的条件下访问内存 以 vb的风格支持属性和事件 改变编译器选项 可以把程序编译为可执行文件或 net 组件库 该组件库可以用与 activex 控件 com 组件 相同的方式由其他代码调用 c 可以用于编写 asp net 动态 web 页面和 xml web 服务 应该指出 对于上述大多数特性 vb net 和 managed c 也具备 但 c 从一开始就使 用 net 对 net 特性的支持不仅是完整的 而且提供了比其他语言更合适的语法 c 语言 本身非常类似于 java 但其中有一些改进 因为 java 并不是为应用于 net 环境而设计的 在结束这个主题前 还要指出 c 的两个局限性 其一是该语言不适用于编写时间急迫或性 能非常高的代码 例如一个要运行 1000 或 1050 次的循环 并在不需要这些循环时 立即清 理它们所占用的资源 在这方面 c 可能仍是所有低级语言中的佼佼者 其二是 c 缺乏 性能极高的应用程序所需要的关键功能 包括保证在代码的特定地方运行的内联函数和析构 函数 但这类应用程序非常少 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 c programming language overview a history of c c and c the c programming language was created in the spirit of the c and c programming languages this accounts for its powerful features and easy learning curve the same can t be said for c and c but because c was created from the ground up microsoft took the liberty of removing some of the more burdensome features such as pointers this section takes a look at the c and c languages tracing their evolution into c the c programming language was originally designed for use on the unix operating system c was used to create many unix applications including a c compiler and was eventually used to write unix itself its widespread acceptance in the academic arena expanded to include the commercial world and software vendors such as microsoft and borland released c compilers for personal computers the original windows api was designed to work with windows code written in c and the latest set of the core windows operating system apis remain compatible with c to this day from a design standpoint c lacked a detail that other languages such as smalltalk had already embraced the concept of an object you ll learn more about objects in chapter 8 writing object oriented code for now think of an object as a collection of data and a set of operations that can be performed on that data object style coding could be accomplished using c but the notion of an object was not enforced by the language if you wanted to structure your code to resemble an object fine if you didn t fine c really didn t care objects weren t an inherent part of the language so many people didn t pay much attention to this programming paradigm after the notion of object oriented development began to gain acceptance it became clear that c needed to be refined to embrace this new way of thinking about code c was created to embody this refinement it was designed to be backwardly compatible with c such that all c programs would also be c programs and could be compiled with a c compiler the major addition to the c language was support for this new object concept the c language added support for classes which are templates of objects and enabled an entire generation of c programmers to think in terms of objects and their behavior the c language is an improvement over c but it still has some disadvantages c and c can be hard to get a handle on unlike easy to use languages like visual basic c and c are very low level and require you to do a lot of coding to make your application run well you have to write your own code to handle issues such as memory management and error checking c and c can result in very powerful applications but you need to ensure that 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 your code works well one bug can make the entire application crash or behave unexpectedly because of the c design goal of retaining backward compatibility with c c was unable to break away from the low level nature of c microsoft designed c to retain much of the syntax of c and c developers who are familiar with those languages can pick up c code and begin coding relatively quickly the big advantage to c however is that its designers chose not to make it backwardly compatible with c and c while this may seem like a bad deal it s actually good news c eliminates the things that makes c and c difficult to work with because all c code is also c code c had to retain all of the original quirks and deficiencies found in c c is starting with a clean slate and without any compatibility requirements so it can retain the strengths of its predecessors and discard the weaknesses that made life hard for c and c programmers introducing c c the new language introduced in the net framework is derived from c however c is a modern objected oriented from the ground up type safe language language features the following sections take a quick look at some of the features of the c language if some of these concepts don t sound familiar to you don t worry all of them are covered in detail in later chapters classes all code and data in c must be enclosed in a class you can t define a variable outside of a class and you can t write any code that s not in a class classes can have constructors which execute when an object of the class is created and a destructor which executes when an object of the class is destroyed classes support single inheritance and all classes ultimately derive from a base class called object c supports versioning techniques to help your classes evolve over time while maintaining compatibility with code that uses earlier versions of your classes as an example take a look at a class called family this class contains the two static fields that hold the first and last name of a family member as well as a method that returns the full name of the family member class class1 public string firstname 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 public string lastname public string fullname return firstname lastname note single inheritance means that a c class can inherit from only one base class c enables you to group your classes into a collection of classes called a namespace namespaces have names and can help organize collections of classes into logical groupings as you begin to learn c it becomes apparent that all namespaces relevant to the net framework begin with system microsoft has also chosen to include some classes that aid in backwards compatibility and api access these classes are contained within the microsoft namespace data types c lets you work with two types of data value types and reference types v alue types hold actual values reference types hold references to values stored elsewhere in memory primitive types such as char int and float as well as enumerated values and structures are value types reference types hold variables that deal with objects and arrays c comes with predefined reference types object and string as well as predefined value types sbyte short int long byte ushort uint ulong float double bool char and decimal you can also define your own value and reference types in your code all value and reference types ultimately derive from a base type called object c allows you to convert a value of one type into a value of another type you can work with both implicit conversions and explicit conversions implicit conversions always succeed and don t lose any information for example you can convert an int to a long without losing any data because a long is larger than an int explicit conversions may cause you to lose data for example converting a long into an int may result in a loss of data because a long can hold larger values than an int you must write a cast operator into your code to make an explicit conversion happen cross reference refer to chapter 3 working with v ariables for more information about implicit and explicit conversions you can work with both one dimensional and multidimensional arrays in c multidimensional arrays can be rectangular in which each of the arrays has the same dimensions or jagged in which each of the arrays has different dimensions classes and structures can have data members called properties and fields fields are variables that are associated with the enclosing class or structure you may define a structure 毕业设计外文翻译 c 编程语言概述 西南石油大学软件工程专业 2008 级一班 王林 called employee for example that has a field called name if you define a variable of type employee called currentemployee you can retrieve the employee s name by writing currentemployee name properties are like fields but enable you to write code to specify what should happen when code accesses the value if the employee s name must be read from a database for example you can write code

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论