學習啦 > 知識大全 > 知識百科 > 百科知識 > 什么是函數調用函數調用的形式

什么是函數調用函數調用的形式

時間: 謝君787 分享

什么是函數調用函數調用的形式

  函數調用是指計算機編譯或運行時,使用某個函數來完成相關命令。那么你對函數調用了解多少呢?以下是由學習啦小編整理關于什么是函數調用的內容,希望大家喜歡!

  函數調用的一般形式

  在程序中通過對函數的調用來執(zhí)行函數體,其過程與其它語言的子程序調用相似。

  C語言中,函數調用的一般形式為:

  函數名(實際參數表)

  對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變量或其它構造類型數據及表達式。各實參之間用逗號分隔。

  函數調用包括的內容

  函數表達式

  函數作為表達式中的一項出現在表達式中,以函數返回值參與表達式的運算。這種方式要求函數是有返回值的。例如:z=max(x,y)是一個賦值表達式,把max的返回值賦予變量z。

  函數調用的實際實現

  指針寄存器

  EBP

  EBP是所謂的幀指針,指向當前活動記錄的上方(上一個活動記錄的最下方)

  ESP

  ESP是所謂的棧指針,指向當前活動記錄的最下方(下一個將要插入的活動記錄的最上方)

  這兩個指針的值規(guī)定了當前活動記錄的位置

  參數傳遞

  將函數參數壓棧:mov eax,dword ptr [n] ;(n為參數變元)

  push eax

  操作

  函數調用將執(zhí)行如下操作:

 ?、睂羔槈喝霔V校簆ush ebp

  ⒉使得幀指針等于棧指針:mov ebp,esp

 ?、呈箺V羔樧詼p,自減得到的內存地址應當能夠(足夠)用來存儲被調用函數的本地狀態(tài):sub esp,0CCh

  注意:0CCh為0xCC,隨著具體函數的不同而不同。

  傳入保存狀態(tài)

  push ebx ;保存ebx寄存器的值

  push esi ;保存esi寄存器的值

  push edi ;保存edi寄存器的值

  函數語句

  函數調用的一般形式加上分號即構成函數語句。例如: printf ("%d",a);scanf ("%d",&b);都是以函數語句的方式調用函數。

  函數實參

  函數作為另一個函數調用的實際參數出現。這種情況是把該函數的返回值作為實參進行傳送,因此要求該函數必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調用的返回值又作為printf函數的實參來使用的。在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各系統(tǒng)的規(guī)定不一定相同。介紹printf 函數時已提到過,這里從函數調用的角度再強調一下。
看過“函數調用的形式”的人還看了:

1.c語言函數調用過程

2.怎么在VBA指令中調用Excel函數

3.excel用函數引用其他表數據的方法

4.excel查詢引用函數的用法

5.html調用js方法

6.excel引用自定義公式的方法

1611017