什么是动态联编和静态联编?
时间: 2023-05-25 21:06:41 浏览: 150
动态联编和静态联编都是指在程序运行时如何确定调用哪个函数或程序。
动态联编指在程序运行时根据实际情况确定调用哪个函数或程序,即动态地将函数或程序链接到调用点。在动态联编中,编译器并不知道调用哪个函数,其调用的函数是在程序运行时由操作系统或程序自己决定的。例如,C++中的虚函数就是动态联编的典型例子,程序在运行时根据对象的实际类型确定调用哪个虚函数。
静态联编指在程序编译时确定调用哪个函数或程序,即编译时将函数或程序链接到调用点。在静态联编中,编译器可以通过函数名和参数的类型来准确地确定调用哪个函数。例如,C语言中的函数就是静态联编的典型例子,编译器在编译时就能够确定调用哪个函数。
总之,动态联编是在程序运行时确定调用哪个函数,而静态联编是在程序编译时确定调用哪个函数。
相关问题
22:什么是动态联编,什么是静态联编
动态联编(也称为运行时多态)和静态联编(也称为编译时多态)是面向对象程序设计中的两个概念。
动态联编是指在程序运行时确定具体调用哪个函数。在运行时,程序会根据对象的实际类型来决定所调用的函数。通常情况下,动态联编需要通过虚函数来实现。
静态联编是指在程序编译时就能够确定具体调用哪个函数。在编译时,程序会根据变量或者表达式的静态类型来决定所调用的函数。通常情况下,静态联编需要通过重载来实现。
总的来说,动态联编能够实现更加灵活的多态性,但是需要在运行时进行函数调用,会带来一定的性能损失;静态联编则能够在编译时完成函数调用,性能更高,但是多态性相对较差。
简述静态静态联编和动态联编的异同
静态联编和动态联编都是指编程语言中的方法调用机制,它们的异同如下:
异同点:
1. 都是指在程序运行时方法的调用方式;
2. 都是编译器的一种实现方式。
不同点:
1. 静态联编是在编译期就确定方法的调用地址,因此也叫做早期绑定;而动态联编是在运行期根据对象的类型来确定方法的调用地址,因此也叫做晚期绑定。
2. 静态联编的方法调用效率高,因为编译器已经确定了方法的调用地址;而动态联编的方法调用效率相对较低,因为需要在运行期根据对象的类型来确定方法的调用地址。
3. 静态联编只能调用编译期已经确定的方法,而动态联编可以调用运行期动态创建的方法。
4. 静态联编主要应用于静态语言,如Java、C++等;而动态联编主要应用于动态语言,如Python、Ruby等。
综上所述,静态联编和动态联编都有各自的优缺点和应用场景,需要根据具体情况来选择使用。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)