首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

调用C++ 里new操作符的一个疑点

2013-01-02 
调用C++ 里new操作符的一个疑问如下红字部分的两句,是否多余啊?而且似乎是相当于来回自己赋给自己一个值ch

调用C++ 里new操作符的一个疑问
如下红字部分的两句,是否多余啊?
而且似乎是相当于来回自己赋给自己一个值

char* p = new char[5];
0041140E  push        5    
00411410  call        operator new (4111A4h) 
00411415  add         esp,4 
00411418  mov         dword ptr [ebp-0E0h],eax 
0041141E  mov         eax,dword ptr [ebp-0E0h] 
00411424  mov         dword ptr [p],eax
[解决办法]
这是编译器优化不够吧,将 new 和赋值两个功能割裂了独自操作,而 eax 又是属于可以被随意使用的,所以就出现这样的情况了。
[解决办法]
这种代码很常见,比较不是人自己手动一行行敲汇编指令。

热点排行