热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言编译、链接和运行详解

文章目录1.什么是编译2.什么是链接3.什么是运行4.C程序开发注意事项15.如果想只生成目标



文章目录





    • 1. 什么是编译

    • 2. 什么是链接

    • 3. 什么是运行

    • 4. C 程序开发注意事项1

    • 5. 如果想只生成目标 exe 文件,不想执行结果

    • 6. 编译、链接和运行的流程

    • 7. C 程序开发注意事项2




1. 什么是编译



  1. 有了 C 源文件,通过编译器将其编译成 obj 文件(目标文件)

  2. 如果程序没有错误,没有任何提示,但在 Debug 目录下会出现一个 Hello.obj 文件,该文件称为目标文件


2. 什么是链接



  1. 有了目标文件(.obj 文件),通过链接程序将其和运行需要的 c 库文件链接 成 exe 文件(可执行文件)。

  2. 如果程序没有错误,没有任何提示,但在 Debug 目录下会出现一个项目名.exe 文件,该文件称为可执行文件。

  3. 为什么需要链接库文件呢? 因为我们的 C 程序中会使用 C 程序库的内容,比如 中的函数printf() system()等等, 这些函数不是程序员自己写的,而是 C 程序库中提供的,因此需要链接

  4. 你会发现链接后,生成的.exe 文件,比 obj 文件了很多


3. 什么是运行



  1. 有了可执行的 exe 文件, 也称为可执行程序 (二进制文件)

  2. 在控制台下可以直接运行 exe 文件


4. C 程序开发注意事项1



  • 对修改后的 hello.c 源文件需要重新编译链接,生成新的 exe 文件后,再执行,才能生效。


5. 如果想只生成目标 exe 文件,不想执行结果



  • 如:hello.c 程序代码修改后只想生成 .exe 文件,不要执行结果
    在这里插入图片描述

  • 可以这样做:打开 VC++ 2010 ,调试–> 生成解决方案
    在这里插入图片描述

  • 这样就不会弹出执行.exe 文件

  • 而当打开 .exe 文件就是生成后的结果


6. 编译、链接和运行的流程

在这里插入图片描述



  • hello.c 的源文件只有 1KB

在这里插入图片描述



  • 编译后生成的 目标文件 只有 4KB
    在这里插入图片描述



  • 当链接生成 exe 文件变成了 27KB,说明在链接的过程中把一些库函数资源一起链接到 exe 文件中,所以 exe 文件变大了
    在这里插入图片描述




7. C 程序开发注意事项2



  1. C 程序的主体结构说明

#include ...
void main() { // {} 包括内容, 称为函数体
语句 1;
语句 2;
}


  1. C 程序源文件以“c”为扩展名。

  2. C 程序的执行入口是 main()函数

  3. C 语言严格区分大小写。

  4. C 程序由一条条语句构成,每个语句以“;”结束

  5. 大括号都是成对出现的,缺一不可

本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254624.html


原文链接:https://www.cnblogs.com/xdr630/p/15254624.html



推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有