简单说一下编译程序怎样编译一个函数?

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:41:15
简单说一下编译程序怎样编译一个函数?

对于一个vector<int>的函数,比如size(),如果在不同的cpp中出现,在这些文件编译的时候都要把vector<int>::size()编译一遍。然后在链接的时候把重复的函数去掉。很显然增加了编译时间。

补充里你的理解是错的,模板的声明是不编译的,更没有空间,它根本不是实际的类型或函数,编译器根本不管它。只有实例化的时候,才生成真正的类型、函数,而实例化的地方不在一起,必然造成同一个类型、函数被编译了多次。反观类的编译,只在它的cpp中编译一次,其他地方都使用它的头文件得到声明。

可能不太准确,建议看看《编译原理》
1。源文件
2。词法分析
3。语法分析
4。语义分析
5。中间代码生成
6。优化代码
7。目标代码生成

看编译原理吧

高级语言在编译的时候,编译器会生成汇编,进而生成二进制文件.

高级语言编译函数,先把函数的形参压栈(有时候还有状态寄存器等),再分配声明的局部变量的内存空间,然后是函数处理,最后是出栈.