运行C程序的步骤和方法-程序员宅基地

技术标签: 计算机编程  编程语言  

计算机不能直接识别和执行用高级语言写的指令,必须用编译程序把C源程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序。

在编好一个C源程序后,怎样上机进行编译和运行呢?一般要经过以下几个步骤:

(1)上机输入和编辑源程序。通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内,文件用.c作为后缀,生成源程序文件,如f.c

(2)对源程序进行编译,先用C编译系统提供的“预处理器”对程序中的预处理指令进行编译预处理。例如,对于#include<stdio.h>指令来说,就是将stdio.h头文件的内容读进来,取代#include<stdio.h>行。由预处理得到的信息和程序其他部分一起,组成一个完整的,可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。

编译的作用首先是对源程序进行检查,判断它有无语法方面的错误,如有,则发出“出错信息”,告诉编程人员认真检查改正。修正程序后重新进行编译,如有错,再发出“出错信息”。如此反复进行,直到没有语法错误为止。这时,编译程序自动把源程序转换为二进制形式的目标程序,如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。

在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。用户不必分别发出二次指令。

(3)进行连接处理。经过编译所得到的二进制目标文件(后缀为.obj)还不能供计算机直接执行。前面也说明:一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的,一次编译只能得到与一个源程序文件相对于的目标文件,它只是整个程序的一部分,必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序,在Visual C++中其后缀为.exe,如f.exe。

即使一个程序只包含一个源程序文件,编译后得到的目标程序也不能直接运行,也要经过连接阶段,因为要与函数库进行连接,才能生成可执行程序。

以上连接的工作是由一个称为“连接编辑程序”的软件来实现的。

(4)运行可执行程序,得到运行结果。

以上过程如图所示,其中实线表示操作流程,虚线表示文件的输入输出。例如编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再将所有目标模板输入计算机,与系统提供的库函数等进行连接,得到可执行的目标程序f.exe,最后把f.exe输入计算机,并使之运行得到结果。

一个程序从编写到运行成功,并不是一次成功的,往往要经过多次反复。编写好的程序并不一定能保证正确无误,除了用人工方式检查外,还须借助编译系统来检查有无语法错误。从图中可以看到:如果在编译过程中发现错误,应当重新检查源程序,找出问题,修改源程序,并重新编译,直到无错为止。有时编译过程未发现错误,能生成可执行程序,但是运行的结果不正确。一般情况下,这不是语法方面的错误,而可能是程序逻辑方面的错误,例如计算公式不正确、赋值不正确等,应当返回检查源程序,并改正错误。

为了编译、连接和运行C程序,必须要有相应的编译系统。目前使用的很多C编译系统都是集成环境(IDE)的,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,功能丰富,使用方便,直观易用。

写出源程序后可以用任何一种编译系统对程序进行编译和连接工作,只要用户感到方便、有效即可。20世纪90年代,Turbo C 2.0用得比较多,但Turbo C 2.0是用于DOS环境的,在进入Turbo C集成环境后,不能用鼠标进行操作,主要通过键盘选择菜单,不大方便。有的人改用Turbo C++ 3.0,它具有方便、直观和易用的界面,虽然它也是DOS环境下的集成环境,但可以用鼠标操作菜单,因此在Windows环境下使用也很方便。近年来,不少人用Visual C++对C程序进行编译。Visual C++ 6.0既可以对C++程序进行编译,也可以对C程序进行编译。

不应当只会使用一种编译系统,无论用哪一种编译系统,都应当能举一反三,在需要时会用其他编译系统进行工作。

搜索微信公众号【balayihuier】或扫描下方二维码关注微信公众号,资深软件工程师带你手把手撸代码,从此走上人生巅峰,迎娶白富美!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dhjxncu/article/details/105691019

智能推荐

JAVA项目spring、mybatis、springMVC 模态窗口,后端代码设计 | part2_模态窗口代码怎么写-程序员宅基地

文章浏览阅读195次。JAVA项目(使用SSM实现)各部分详细分析(CRM)|| part2。_模态窗口代码怎么写

SAP MM零基础学习-第一篇-模块简介_sap mm培训csdn-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏46次。MM物料管理是SAP R/3系统的一个模块,SAP在标准软件系统市场中处于领先地位。由于使用先进的开发技术,SAP能够为业务的各个方面提供数据处理的解决方案。物料管理模块支持日常发生的业务处理功能和过程。几乎没有一个领域具有这样一个具有广泛应用范围和满足需求的标准软件包,这来自于特殊的工业需求、特殊的产品特点和公司策略。系统还具有与其他商业应用的接口。MM系统(物料管理)的目的是满足下列各种处理,即物料需求计划、物料采购、库存管理、发票确认和物料估价。MM(Material Management)._sap mm培训csdn

XCKU5P-2FFVB676E 赛灵思FPGA可编程逻辑芯片器件 XILINX-程序员宅基地

文章浏览阅读792次。产品概述Xilinx FPGA系列具有优秀的性价比, 性能, 功率消耗, 提供高端功能, 例如收发器, 存储器接口线路速率, 100G连接芯片等。FPGA可选择-3, -2, -1速度级别。该系列非常适合数据包处理, DSP功能, 以及无线MIMO技术, Nx100G网络和数据中心等应用。该器件采用UltraScale架构, 具有超高的性能, 带有片上UltraRAM存储器, 可降低BOM成本, 可配合高性能外设创建高性价比系统。FPGA具有多种电源选项, 平衡系统性能和所需功率。多达120万个系统_ku5p

计算机科学与技术b类大学名单,南京信息工程大学a类学科有哪些?附学校第四轮学科评估结果...-程序员宅基地

文章浏览阅读1.1k次。选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>南京信息工程大学是江苏省一所知名高校,位于江苏省南京市,国家首批世界一流学科建设高校。本期,小编将为大家介绍南京信息工程大学在教育部全国第四轮学科评估中的相关学科情况,可供参考。一、南京信息工程大学A类学科名单(1个学科)A+:大气科学二、南京信息工程大学B类学科名单(4个学科)B:计算机科学与技术B-..._南京信息工程大学a-学科

cisco 2960 交换机 安装配置基础-程序员宅基地

文章浏览阅读622次。cisco2960交换机安装配置基础新设备配置内容:1.interfacevlan1的ip,gatewayconftintvlan1ipaddressxx.xx.xx.xx255.255.255.0ipdefault-gatewayip-addressnoshutdownexit2.en的密码3.linevty0-4telnet的密码4...._思科2960 trunk配置

iOS -- 开源项目和库-程序员宅基地

文章浏览阅读1.9k次。TimLiu-iOS目录UI下拉刷新模糊效果AutoLayout富文本图表表相关与Tabbar隐藏与显示HUD与Toast对话框其他UI动画侧滑与右滑返回手势gif动画其他动画网络相关网络连接图像获取网络聊天网络测试网页框架WebView与WKWebView..._xxylog.vip

随便推点

对偶律_概率论对偶律公式-程序员宅基地

文章浏览阅读1.7w次。集合对偶律证明(A∩B)C=AC∪BC.能不能用图中的颜色来说明,首先,整个 I 区域被 A、B 分割为互不重叠的 4 部分:灰、红、蓝、绿;而对偶律,也就是上面这个公式,可以这样证明:左边 = [(红绿) 与 (蓝绿) 的交] 的补 = [绿] 的补 = 灰红蓝;右边 = [(红绿) 的补] 与 [(蓝绿) 的补] 的并 = [(灰蓝)] 与 [(灰红_概率论对偶律公式

web前端20种字体_前端艺术字-程序员宅基地

文章浏览阅读2.5w次。【代码】web前端20种字体。_前端艺术字

掌握Vue3模板语法,助你轻松实现高效Web开发_陈书予 vue3-程序员宅基地

文章浏览阅读3w次,点赞5次,收藏3次。Vue3中的模板语法是Vue框架中的核心特性之一,它可以帮助我们快速构建复杂的UI界面和交互逻辑。除了常见的模板指令和数据绑定,Vue3还提供了插槽和动态组件等高级特性,可以让我们更加灵活地开发Vue应用。在使用Vue3的模板语法时,需要注意避免使用过多的复杂。_陈书予 vue3

基础生信分析——富集分析(2)-程序员宅基地

文章浏览阅读301次,点赞11次,收藏5次。接基础生信分析——富集分析(1)以上是四种高级GO富集分析图,请注意,无论多复杂的可视化,其结果都是一样的,并且目的都是清晰的展示功能注释结果。

IE问题解决方法汇总_来操作:解决办法---在ie最上面点击 [工具]→internet选项(o)→删除cookies(t-程序员宅基地

文章浏览阅读249次。 1、网页乱码的排除。 有些朋友问我,上网时为什么在网页上经常出现乱码?其实这一问题有两种现象:一种是语言的选择不当引起的,比如说浏览繁体网页,或国外有些网站,电脑一时不能自动转换内码,而出现了乱码。消除这种情况,可单击浏览器上的“查看”/“编码”,选取你要显示的文字,则乱码取消。另一种是电脑缺少内码转换器,如是则安装上就好了。 2、上网时发生非法操作的排除。 上网时经常出现“非法操作_来操作:解决办法---在ie最上面点击 [工具]→internet选项(o)→删除cookies(t)→就会ok了.本站永久访问域名:

删除文件夹方法(bin,obj)_删bin文件末尾内容怎么删-程序员宅基地

文章浏览阅读4.2k次。寻找使用C#删除文件夹的方法,偶然看到了一个更简单的,不过都写的有点太简练了,我来稍微扩展一下使用批处理文件→先新建一个txt文档,里面写上如下内容:在第二个“for”→for /r %nowPath% %%i in (obj,bin) do (IF EXIST %%i RD /s /q %%i) ,这一句中,“in”后的obj,bin是需要删除的文件夹,保存,后缀名改为bat..._删bin文件末尾内容怎么删