C语言编译、链接和运行详解
  TEZNKK3IfmPf 2023年11月12日 21 0

1. 什么是编译

    1.  
  1. 有了 C 源文件,通过编译器将其编译成 ​​obj​​ 文件(​目标文件)​。
  2. 如果程序没有错误,没有任何提示,但在 ​​Debug​​​ 目录下会出现一个 ​​Hello.obj​​ 文件,该文件称为目标文件
    1.  

2. 什么是链接

    1.  
  1. 有了目标文件(​​.obj 文件​​​),通过链接程序将其和运行需要的 ​​c 库文件​​​链接 成 ​​exe 文件​​(可执行文件)。
  2. 如果程序没有错误,没有任何提示,但在 ​​Debug​​​ 目录下会出现一个项目名​​.exe​​ 文件,该文件称为可执行文件。
  3. 为什么需要链接库文件呢? 因为我们的 C 程序中会使用 C 程序库的内容,比如 ​​<stdio.h> <stdlib.h>​​​ 中的函数​​printf() system()​​等等, 这些函数不是程序员自己写的,而是 C 程序库中提供的,因此需要链接
  4. 你会发现链接后,生成的​​.exe​​​ 文件,比 ​​obj​​ 文件​​了很多
    1.  

3. 什么是运行

    1.  
  1. 有了可执行的 exe 文件, 也称为可执行程序 (二进制文件)
  2. 在控制台下可以直接运行 exe 文件
    1.  

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

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

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

    •  
  • 如:​​hello.c​​ 程序代码修改后只想生成 ​​.exe 文件​​,不要执行结果
    C语言编译、链接和运行详解
  • 这样就不会弹出执行​​.exe 文件​
  • 而当打开 ​​.exe 文件​​就是生成后的结果
    •  

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

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

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

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



当链接生成 ​​exe 文件​​变成了 27KB,说明在链接的过程中把一些库函数资源一起链接到 exe 文件中,所以 exe 文件变大了
C语言编译、链接和运行详解


  •  

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

  1. C 程序的主体结构说明
#include ... 
void main() { // {} 包括内容, 称为函数体
语句 1;
语句 2;
}
    1.  
  1. C 程序源文件以“​​c​​”为扩展名。
  2. C 程序的执行入口是 ​main()函数
  3. C 语言严格区分​大小写。
  4. C 程序由一条条语句构成,每个语句以“​​;​​”结束
  5. 大括号都是成对出现的,缺一不可
    1.  
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   103   0   0 c语言字符
  TEZNKK3IfmPf   2024年03月30日   153   0   0 C++c语言
  TEZNKK3IfmPf   2024年04月19日   54   0   0 进程c语言
TEZNKK3IfmPf