C++, Java和C#的编译过程解析.docxVIP

  • 4
  • 0
  • 约2.4千字
  • 约 4页
  • 2016-08-23 发布于河南
  • 举报
C,Java和C#的编译过程解析

C++, Java和C#的编译过程解析1.1.1 摘要我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成机器语言,这样计算机才能执行高级语言编写的程序,在接下来的博文中,我们将介绍非托管和托管语音的编译过程。1.1.2正文非托管环境的编译过程(C/C++)纯C/C++的程序通常运行在一个非托管环境中,类是由头文件(.h)和实现文件(.cpp)组成,每个类形成了一个单独的编译单元,当我们编译程序时,几个基本组件会把我们的源代码翻译成二进制代码,接下来我们通过以下图片说明非托管环境的编译过程:图1 C/C++编译过程首先是预处理器,如果在项目中有头文件和宏表达式,那么它将负责包含头文件和翻译所有的宏观表达式。接下来是编译器,它不是直接生成二进制代码,而是生成汇编代码(.s),这基本上是所有现代的非结构化语言的共同基础。然后,汇编程序把汇编代码翻译成目标代码(.o和.obj文件,机器指令)。最后链接器,它把所有彼此相关的目标文件和生成的可执行文件或库链接起来。总而言之,在一般情况下,我们的代码首先翻译成汇编代码,接着翻译成机器指令(二进制代码)。什么是宏?在C/C++中,宏是预处理指令,它有多种应用技术:包括预定义、创建关键字和条件编译等等。在一般情况下,这些技术在C++中使用被认为是不好的做法,主要原因是有可能滥用C++提供的语法变化功能,甚至有可能

文档评论(0)

1亿VIP精品文档

相关文档