编译器比你聪明


#102

请问楼主怎么学习到这些知识的,我想学习“学习的方法


#103

简单: 经常来这里呗 !!!


#104

@microcai 这个编译器能给优化吗


#105

哈哈, 没测试过呢!

你可以测试下


#106

我来顶一顶,哈哈

xoxo 油菜


#110

编译器能优化代码, 却很少能优化数据结构的.


#111

又出问题了

真垃圾啊, ruby 垃圾


#112

这个小站很不错啊,学到了很多知识,支持一下。。


#113

图片 404 了……


#114

真是可悲的事情。 诶


#115

楼主说得很直接,顶~~~哈哈哈。 有时候很烦一些人整天说优化优化,代码的核心逻辑都还有问题,就去优化某几行代码了。先把整个项目的最花时间的模块或函数或任务找出来再说~


#116

难怪算法题用c++快了那么多!!


#117

还真有不 Profile 代码,就开始优化的人?


#118

宏的一个很大的问题是参数多次出现造成多次展开,as stated by @omegacoleman。 这种写法就是错误的(或者说危险的):

“正确”的写法是这样的: #define MAX(a,b) ({auto aa=(a);auto bb=(b);aa>bb?aa:bb;}) 注1:此行代码为手写,未测试; 注2:这里用了个 gnu 扩展,thus 不可移植; 注3:应该用 auto && ? Whatever… 所以说用 std::max 多好!


#119

既用宏肯定是因为没有 C++ 用,既是 C 又如何用 auto


#120

看你的主题,你用宏是因为你在讨论宏是否能“提高性能”,而不是因为“没有 C++ 用”。 你指出了宏不能提高性能,同时带来许多坏处。我只是补充宏的一点坏处(难以正确实现),并没有让你这么用。


#121

除了arm上乱序的问题,一般都不用手工汇编;汇编的另外一个使用场景就是调试的时候取得调用堆栈。