联编(Binding,绑定)是指一个程序自身彼此关联的过程, 在这个联编过程中,需要确定程序中的操作调用(函数调用)与执 行该操作(函数)的代码段之间的映射关系; 就是把函数调用与函 数的程序代码连接(联系)在一起的过程。
按照所进行的阶段不同,联编分成两大类:
静态联编:在程序编译连接阶段进行的联编, 又称为早期联编; 因为这种联编是在程序运行之前完成的。
e.g.
#include <iostream>
using namespace std;
int max(int a,int b);
int max(int a,int b,int c);
int max(int a,int b)
{
return a>b?a:b;
}
int max(int a,int b,int c)
{
int t;
t=max(a,b);
return max(t,c);
}
int main()
{
cout<<max(5,3)<<endl;
cout<<max(4,8,2)<<endl;
}
动态联编:
在程序运行时进行的联编,又称为晚期联编;编译 程序在编译阶段不能确切地知道将要调用的函数,只有在程序执 行时才能确定将要调用的函数,为此要确切地知道将要调用的函 数,要求联编在程序运行时进行。
C++为了兼容C语言仍然是编译型的,采用静态联编。
**静态联编优点:**调用速度快,效率高,但缺乏灵活性;
**动态联编优点:**运行效率低,但增强了程序灵活性。