汉扬编程 C语言入门 C语言基础-C语言起源04-C语言编译过程

C语言基础-C语言起源04-C语言编译过程

C程序编译步骤

C语言基础-C语言起源04-C语言编译过程

C代码编译成可执行程序经过4步:

1、预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法

2、编译:检查语法,将预处理后文件编译生成汇编文件

3、汇编:将汇编文件生成目标文件(二进制文件)

4、链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

CPU处理流程

集成开发环境IDE- Microsoft Visual Studio

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,所写的目标代码适用于微软支持的所有平台。Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。

一般编写代码都是在VS或者linux下vim编写的。

谢谢阅读!如有错译,欢迎各位朋友评论区纠正。

喜欢C\\C++的朋友可以点个关注,搜索文章不迷路!(内容持续更新中)

请教关于windows下c语言编译过程。怎么办?

  \”windows下也是一样有这类过程
dev c ,免费IDE(用的就是windows下的gcc)
eclipse cdt 也免费(同上)
cygwin windows下模拟unix的,用的也是gcc
ms 的 vc vs,当然不免费
bc 也不免费。
  
你是说单步跟踪?
以上开发环境都行撒。
bc用的太少不熟悉。
dev – C Ctrl F5打断点,F8 debug模式,F7单步,shift f7进函数。
  
vc6。0 vs2003~2008,F9断点,F5(键盘(keyboard)上的F5)进调试模式,或f10,f11单步,f11可以进调出使用函数。
可以在监视窗口查看,改变,变量的值\”。

c++编译过程有何不同?

  Java编译原理

1、Java编译过程与c/c++编译过程不同

Java编译程序将java源程序编译成jvm可执行代码–java字节码。

c/c++编译过程:

当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。
  因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。

Java编译过程:

Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。
  

2、jvm工作原理

运行jvm字符码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验、和代码的执行。

装入代码的工作由“类装载器classloader”完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被调

用的类。
  当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机的所有类都在同一地址空间中,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
  

当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用与特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内布局,java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码的非法访问。

随后,被装入的代码由字节码校验器进行检查。
  校验器可以发现操作数栈益处、非法数据类型转化等多种错误。通过校验后,代码便开始执行了。

java字节码的执行有两种方式:

1)即时编译方式:解释器先将字节编译成机器码,然后再执行该机器码。

2)解释执行方式:解释器通过每次解释并执行一小段代码来完成java字节码程序的所有操作。
  本节关于Java编译的内容介绍到这里,请关注本节其他相关报道。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6924.html

编程常用语言有哪些?哪个相对较容易入门?

学习C语言的方法和编程的几点建议

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部