什么是函数调用函数调用的形式
1个回答
展开全部
函数调用是指计算机编译或运行时,使用某个函数来完成相关命令。那么你对函数调用了解多少呢?以下是由我整理关于什么是函数调用的内容,希望大家喜欢!
函数调用的一般形式
在程序中通过对函数的调用来执行函数体,其过程与 其它 语言的子程序调用相似。
C语言中,函数调用的一般形式为:
函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
函数调用包括的内容
函数表达式
函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
函数调用的实际实现
指针寄存器
EBP
EBP是所谓的帧指针,指向当前活动记录的上方(上一个活动记录的最下方)
ESP
ESP是所谓的栈指针,指向当前活动记录的最下方(下一个将要插入的活动记录的最上方)
这两个指针的值规定了当前活动记录的位置
参数传递
将函数参数压栈:mov eax,dword ptr [n] ;(n为参数变元)
push eax
操作
函数调用将执行如下操作:
⒈将帧指针压入栈中:push ebp
⒉使得帧指针等于栈指针:mov ebp,esp
⒊使栈指针自减,自减得到的内存地址应当能够(足够)用来存储被调用函数的本地状态:sub esp,0CCh
注意:0CCh为0xCC,随着具体函数的不同而不同。
传入保存状态
push ebx ;保存ebx寄存器的值
push esi ;保存esi寄存器的值
push edi ;保存edi寄存器的值
函数语句
函数调用的一般形式加上分号即构成函数语句。例如: printf ("%d",a);scanf ("%d",&b);都是以函数语句的方式调用函数。
函数实参
函数调用的一般形式
在程序中通过对函数的调用来执行函数体,其过程与 其它 语言的子程序调用相似。
C语言中,函数调用的一般形式为:
函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
函数调用包括的内容
函数表达式
函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
函数调用的实际实现
指针寄存器
EBP
EBP是所谓的帧指针,指向当前活动记录的上方(上一个活动记录的最下方)
ESP
ESP是所谓的栈指针,指向当前活动记录的最下方(下一个将要插入的活动记录的最上方)
这两个指针的值规定了当前活动记录的位置
参数传递
将函数参数压栈:mov eax,dword ptr [n] ;(n为参数变元)
push eax
操作
函数调用将执行如下操作:
⒈将帧指针压入栈中:push ebp
⒉使得帧指针等于栈指针:mov ebp,esp
⒊使栈指针自减,自减得到的内存地址应当能够(足够)用来存储被调用函数的本地状态:sub esp,0CCh
注意:0CCh为0xCC,随着具体函数的不同而不同。
传入保存状态
push ebx ;保存ebx寄存器的值
push esi ;保存esi寄存器的值
push edi ;保存edi寄存器的值
函数语句
函数调用的一般形式加上分号即构成函数语句。例如: printf ("%d",a);scanf ("%d",&b);都是以函数语句的方式调用函数。
函数实参
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询