WEB开发网
开发学院软件开发VC VC++ 语言中函数和类函数调用过程 阅读

VC++ 语言中函数和类函数调用过程

 2008-11-12 19:28:08 来源:WEB开发网   
核心提示: b = SetValue(xxx); 的调用方式为esp -> 生成xxx的临时对象 std::stringlea eax, bpush eaxcall SetValuec. 如果参数以引用方式调用std::string SetValue(std::string &f_Val){f_

b = SetValue(xxx); 的调用方式为

esp -> 生成xxx的临时对象 std::string

  lea eax, b
  push eax
  call SetValue

c. 如果参数以引用方式调用

  std::string SetValue(std::string &f_Val)
  {
  f_Val 获取方式为 mov eax, [ebp + 8]
  }

b = SetValue(xxx); 的调用方式为

  lea eax, xxx
  push eax
  lea eax, b
  push eax
  call SetValue

d. 如果是类调用方法与之一样,区别是 ECX -> 指向对象,具体如下所示

  LONG XXX::SetValue(LONG f_Val)
  {
  ecx -> XXX对象
  f_Val 获取方式为 mov eax, [ebp + 8]
  }

b = a.SetValue(xxx) 调用方式为

  push xxx
  mov ecx,a
  call XXX::SetValue
  mov b, eax
  std::string XXX::SetValue(std::string f_Val)
  {
  ecx -> XXX对象
  f_Val 获取方式为 lea eax, [ebp + 8]
  }

b = a.SetValue(xxx)的调用方式为

esp -> 生成xxx的临时对象 std::string

  lea eax, b
  push eax
  mov ecx,a
  call XXX::SetValue
  std::string XXX::SetValue(std::string &f_Val)
  {
  ecx -> XXX对象f_Val 获取方式为 mov eax, [ebp + 8]
  }

b = a.SetValue(xxx)的调用方式为

  lea eax, xx
  push eax
  lea eax, b
  push eax
  mov ecx,a
  call XXX::SetValue

上一页  1 2 3 

Tags:VC 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接