在C语言的代码编写完成到我们观察到程序执行效果的过程中,主要经历了两个不同的环境,分别是编译环境和执行环境。
目录
一、程序的翻译环境
翻译环境即源代码被转换为可执行的机器指令所处的环境。
翻译环境中主要的执行过程的编译和链接
1. 编译
编译的过程又可细分为预处理、编译、汇编
(1)预处理
在此个过程中,每个源文件(.c)各自经过编译器的处理,生成各自的目标文件(.obj)
由于在VS编译器中此过程不易被观察到,在此使用Linux环境进行演示
首先创建一个文件test.c,内容如下:
#include <stdio.h>
#define M 10
int Add(int x, int y)
{
return x + y;
}
int main()
{
int a = M;
int b = 2;
int c = Add(a, b);
// This line is used to print the value of c
printf("%d\n", c);
return 0;
}
然后使用 如下命令将test.c预编译,并将生成的内容保存到test.i中:
gcc test.c -E |
随后打开text.i,可观察到如下:
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/i