zoukankan      html  css  js  c++  java
  • 模板函数编译原理

    一--- 导读

       首先我们需要搞清楚这样一个实际生活中的例子,当工厂里面要生产一把刀,需要将滚烫的铁水倒入到模具里面,然后再经过锤炼就得到一把锋利的刀。函数模板和模板函数正是这样的一组关系,函数模板相当于做刀的模具,而模板函数就是我们得到的刀。

    二---在linux中进行实际操作

    首先我们先写一个hello.cpp文件,里面放一个函数模板和三组调用

    输入如下命令进行编译

    编译完成我们再看一下hello.s文件

    虽然有3个MyAdd函数,但细心的同学就会发现,第一个和第三个是同名的,都是IiET-的形式,这是因为第一此调用和第三次调用参数的类型是相同的,都为int类型,编译器在编译第一个调用的时候就已经生成了int类型的模板函数。

    三---模板函数诞生编译器编译次数

      编译器一开始会在模板声明的地方先编译函数模板,根据写编译器的程序员们指定的规则,生成相应的函数模板代码。之后若编译器发现有 调用,又会在调用的地方编译一次,生成相应类型的调用代码。故而一次调用编译器需要编译两次

    四---注意事项

      编译器并不是把函数模板直接拿来用,函数模板是不能直接使用的,编译器调用的是以函数模板为型生成的模板函数。这里只要看了导读所说的内容就应该很容易理解。

  • 相关阅读:
    第09组(71) Alpha冲刺 (3/6)
    第09组 Alpha冲刺 (2/6)
    第09组 Alpha冲刺 (1/6)
    第09组(71)需求分析报告
    第07组 Beta冲刺(1/5)
    第07组 Alpha冲刺 总结
    第07组 Alpha冲刺 (6/6)
    第07组 Alpha冲刺 (5/6)
    第五次作业
    第07组 Alpha冲刺 (4/6)
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14226083.html
Copyright © 2011-2022 走看看