gpt4 book ai didi

c++ - 一个简单的c++程序的编译过程

转载 作者:行者123 更新时间:2023-11-30 03:24:52 26 4
gpt4 key购买 nike

<分区>

我试图通过一个简单的 C++ 程序来理解编译过程,如下所示:

#include<iostream.h>
#include<conio.h>
#include<math.h>

#define sum(a,b) a+b

int a;

void main()
{
int b;
cin>>a>>b;
cout<<"hello"<<endl;
cout<<pow(a,2)<<endl;
cout<<sum(a,b);
getch();
}

目前我的理解:

1) 预处理:展开所有宏,代入表达式。例如:sum(a,b)。我们在程序中使用的所有函数的函数原型(prototype)都添加到代码中。例如:来自 math.h 的 pow() 函数

2) 编译:将预处理后的代码转换为汇编代码,然后转换为单个目标代码(这是机器语言)。

3) Linking:决定如何将内存分配给代码的各个部分 - 全局变量 (int a) 和局部变量 (int b)。

在静态链接的情况下,来自各种头文件的函数定义也被添加到代码中。例如:math.h 中 pow() 的定义。最后生成一个独立的单一可执行文件。

在动态链接的情况下,不添加函数定义。最后生成了一个可执行文件,但它不是独立的。

我的理解有误吗?我错过了什么?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com