从前面的学习知道,在返回一个类对象的时候,g++已经做了一些优化。
将
Teacher31 DoubleTeacher31(Teacher31 &teatemp) {
Teacher31 tea;//1. 构造函数被调用 Teacher31 的 构造函数 被调用 000000AE5E2FF674
tea.mage = teatemp.mage * 2;
return tea;//2.调用拷贝函数将tea的值拷贝到一个临时对象中,return出去 Teacher31 的 copy构造函数 被调用 000000AE5E2FF7F4
//3.然后把teatemp析构了。Teacher31 的 析构函数 被调用 000000AE5E2FF674
}
优化成
Teacher31 DoubleTeacher32(Teacher31 &teatemp) {
return Teacher31(teatemp.mage * 2);
}
在linux下,G++已经完成了这样的行为。
因此在LINUX G++上,不需要额外的优化。
但是可以使用命令让g++不给我们优化文章来源:https://www.toymoban.com/news/detail-821547.html
在Linux下,如果不优化,应该怎么执行命令呢?
命令为:其中a.cpp 为源文件名,-o 后面的aobj是你命名的文件名字文章来源地址https://www.toymoban.com/news/detail-821547.html
g++ -fno-elide-constructors Teacher.cpp -o aobj
到了这里,关于71 C++ Linux下的 不用 g++优化行为,验证一些问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!