在研究反汇编过程中如何避免实验函数被内联优化
发布时间:2026/10/16 16:08:24 锦皓数字建站

__declspec(noinline) int test1(int a,int b,int c) { volatile int 返回结果 0; 返回结果 a b - c; return 返回结果; } void 实验窗口::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 MessageBoxW(L测试开始, 0, 0); int 返回值test1(1000,200,3); CString 输出测试; 输出测试.Format(L测试结束输出内容%d, 返回值); MessageBoxW(输出测试); }如上图如何避免自己写的函数test1()被内联优化掉什么叫内联优化如果标记函数被编译器内联了它在汇编里就消失了直接变成几行无用的赋值甚至被完全删掉你就找不到call指令了。保留非内联的call才能在反汇编里一眼看见。在函数名前加上__declspec(noinline) 和函数内部定义一个变量加上volatile就行了测试结果如下
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。