前些天一直被c++内联的问题困扰着,内联主要解决一个宏的问题,对内联的用法之前没有研究过,所以想验证内联的一些用法。就是看内联有没有启用。
一开始想到的办法是内联的本质的区别,就是是否存在函数调用,想到的是看通用寄存器ebp,因为函数调用时,分配栈帧就是这个ebp所为,想在c++中来读取这个寄存器的值,搬出了很久之前的学过东西,内嵌汇编asm语法,搞了半天,发现还是不能读取寄存器的值,只能执行操作数是c中的变量的操作,未果。
后来突然想到只需要阅读编译后的汇编代码就知道了,就是在内联的调用处,有没有出现汇编的call关键字就行了。
阅读(1082) | 评论(0) | 转发(0) |