亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

c++函數的默認參數的使用說明

2020-02-24 14:26:26
字體:
來源:轉載
供稿:網友

在C++中,我們可以為函數提供默認參數,當我們在調用函數時,如果沒有提供參數,編譯器將為函數的參數提供默認值,下文是武林技術頻道小編做出的c++函數的默認參數的使用說明介紹,一起去看看吧。

下面是c++源碼:

?

int add(int a = 1, int b = 2) {//參數a b有默認值
??? return a + b;
}
int main() {
?? int c= add();//不提供參數

}


下面是mian函數里面的匯編碼:

?

?

?


; 4??? : int main() {

?

??? push??? ebp
??? mov??? ebp, esp
??? push??? ecx;為局部變量c分配了4字節的存儲空間 ecx為32位寄存器

; 5??? :??? int c= add();

??? push??? 2;將2壓棧,就是add函數中b參數的默認值 這里參數壓棧方向是從右向左
??? push??? 1;將1壓棧,就是add函數中a參數的默認值
??? call??? ?add@@YAHHH@Z??????????????? ; 調用add函數
??? add??? esp, 8;釋放剛才為add提供參數時的儲存空間
??? mov??? DWORD PTR _c$[ebp], eax;eax寄存器里面存放add函數返回值,寫入變量c里面

; 6??? :???
; 7??? : }

??? xor??? eax, eax
??? mov??? esp, ebp
??? pop??? ebp
??? ret??? 0


下面是add函數的匯編碼:

?

?

?


?add@@YAHHH@Z PROC??????????????????? ; add

?

; 1??? : int add(int a = 1, int b = 2) {

??? push??? ebp
??? mov??? ebp, esp

; 2??? :???? return a + b;

??? mov??? eax, DWORD PTR _a$[ebp];將參數a的值寫入寄存器eax
??? add??? eax, DWORD PTR _b$[ebp];將參數b的值取出與eax里面的值相加,結果存入eax寄存器

; 3??? : }

??? pop??? ebp
??? ret??? 0
?add@@YAHHH@Z ENDP


下面是只提供一個參數值得情況

?

先看c++源碼:

?

int add(int a = 1, int b = 2) {//參數a b有默認值
??? return a + b;
}
int main() {
?? int a = 3;
?? int c= add(a);//只為a提供參數

}


下面是main函數里面的匯編碼:

?

?

?


; 4??? : int main() {

?

??? push??? ebp
??? mov??? ebp, esp
??? sub??? esp, 8;esp寄存器作為棧指針移動8字節,為局部變量a,c預留存儲空間

; 5??? :??? int a = 3;

??? mov??? DWORD PTR _a$[ebp], 3;將3寫入局部變量a所在存儲空間

; 6??? :??? int c= add(a);//不提供參數

??? push??? 2;將2壓棧,提供b參數默認值
??? mov??? eax, DWORD PTR _a$[ebp];取出a的值,放入寄存器eax里面
??? push??? eax;將eax里面的值壓棧,提供參數a的值,這里不是提供的默認值1
??? call??? ?add@@YAHHH@Z??????????????? ; 調用add函數
??? add??? esp, 8;釋放剛才為調用函數add為參數分配的8byte空間
??? mov??? DWORD PTR _c$[ebp], eax;eax里面存放調用函數的結果,寫到c所在存儲空間里面

; 7??? :???
; 8??? : }

??? xor??? eax, eax
??? mov??? esp, ebp
??? pop??? ebp
??? ret??? 0


可以看到,和上面的不同之處在于沒有為a提供默認的參數值。

?

下面是add函數的匯編碼,與第一種情況一樣,沒有變化:

?

?add@@YAHHH@Z PROC??????????????????? ; add

?

; 1??? : int add(int a = 1, int b = 2) {//參數a b有默認值

??? push??? ebp
??? mov??? ebp, esp

; 2??? :???? return a + b;

??? mov??? eax, DWORD PTR _a$[ebp]
??? add??? eax, DWORD PTR _b$[ebp]

; 3??? : }

??? pop??? ebp
??? ret??? 0
?add@@YAHHH@Z ENDP


這里由于為參數a給出了明確的值,因此編譯器只為參數b提供默認值??上攵?,若為add函數都提供了明確的參數值,那么編譯器就不會為參數a,b提供默認值了。

以上就是關于c++函數的默認參數的使用說明,武林技術頻道小編已經為大家介紹的很詳細了,如果你想了解跟多的專業知識,可以來武林技術頻道多多了解。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人午夜影院| 国产97在线视频| 国产精品女主播| 欧日韩不卡在线视频| 国产精品夜间视频香蕉| 欧美亚州一区二区三区| 国产日韩av在线| 成人av在线天堂| 日韩av片永久免费网站| www.亚洲天堂| 欧美电影免费观看高清| 欧美大片欧美激情性色a∨久久| 亚洲欧美自拍一区| 亚洲精品国产精品国自产观看浪潮| 亚洲伊人第一页| 久久69精品久久久久久国产越南| 国产精品久久电影观看| 91日本在线视频| 性欧美在线看片a免费观看| 久久av中文字幕| 日韩精品在线视频美女| 国产精品综合久久久| 亚洲一级片在线看| 国产成人精品视频在线观看| 中文字幕在线日韩| 亚洲国产成人久久| 精品视频在线观看日韩| 在线观看91久久久久久| 全色精品综合影院| 精品成人国产在线观看男人呻吟| 亚洲欧美中文日韩在线v日本| 欧美日韩在线影院| 日韩在线视频播放| 欧美黄色片视频| 91po在线观看91精品国产性色| 一个人www欧美| 91在线视频一区| 久久综合国产精品台湾中文娱乐网| 黑人巨大精品欧美一区二区| 中文字幕少妇一区二区三区| 777777777亚洲妇女| 欧美成人剧情片在线观看| 日韩在线视频观看正片免费网站| 日韩av色在线| 欧美久久久精品| 亚洲第一天堂无码专区| 精品亚洲国产成av人片传媒| 日韩精品小视频| 亚洲视频电影图片偷拍一区| 久久影视电视剧凤归四时歌| 亚洲一区二区三区sesese| 91在线观看免费高清完整版在线观看| 欧美激情精品久久久久久黑人| 视频在线观看一区二区| 欧美激情极品视频| 国产日韩欧美影视| 日韩激情第一页| 亚洲区免费影片| 5566日本婷婷色中文字幕97| 精品国产欧美成人夜夜嗨| 国产欧美日韩最新| 美日韩丰满少妇在线观看| 日韩电影大片中文字幕| 亚洲成av人片在线观看香蕉| 91av国产在线| 亚洲一区二区三区四区视频| 久久久999国产| 亚洲精品福利在线观看| 在线日韩中文字幕| 欧美视频中文字幕在线| 欧美午夜片欧美片在线观看| 色视频www在线播放国产成人| 亚洲aa中文字幕| 欧美午夜丰满在线18影院| 国产精品第二页| 国产91在线高潮白浆在线观看| 成人福利在线观看| 久久91超碰青草是什么| 精品动漫一区二区| 亚洲www永久成人夜色| 538国产精品一区二区免费视频| 国产精品视频不卡| 欧美日韩国产综合新一区| 国产亚洲精品va在线观看| 国产精品色视频| 成人淫片在线看| 国产精品小说在线| 色综合久久久888| 中文字幕久热精品在线视频| 国产婷婷成人久久av免费高清| 亚洲美女av黄| 91成人在线视频| 国产精品女主播视频| 亚洲精品免费一区二区三区| 欧美高清视频在线观看| 亚洲国产成人爱av在线播放| 午夜欧美不卡精品aaaaa| 精品久久久香蕉免费精品视频| 欧美日韩国产综合新一区| 日韩av观看网址| 国产精品免费视频xxxx| 久久久久久久影视| 久久成人人人人精品欧| 日本一区二区在线免费播放| 日韩中文在线观看| 91亚洲国产成人久久精品网站| 精品免费在线视频| 日韩中文字幕在线视频播放| 亚洲国产婷婷香蕉久久久久久| 粉嫩av一区二区三区免费野| 91精品久久久久久久久久入口| 日本欧美精品在线| 成人免费淫片aa视频免费| 欧美午夜丰满在线18影院| 国产精品一香蕉国产线看观看| 在线观看日韩专区| 成人性生交大片免费观看嘿嘿视频| 亚洲欧美色图片| 欧美激情综合亚洲一二区| 久久精品久久久久电影| 欧美精品做受xxx性少妇| 亚洲欧洲美洲在线综合| 亚洲自拍在线观看| 亚洲欧洲日韩国产| 亚洲免费伊人电影在线观看av| 国产精品女人久久久久久| 日韩精品免费在线视频| 欧美在线视频观看| 国产精品久久久久久久久借妻| 久久久久久久网站| 欧美大片大片在线播放| 欧美特黄级在线| 日韩综合视频在线观看| 欧美性xxxxhd| 久久亚洲欧美日韩精品专区| 热久久美女精品天天吊色| 日韩免费在线视频| 成人h视频在线| 91精品国产九九九久久久亚洲| 欧美性在线视频| 国产99久久精品一区二区永久免费| 久久伊人精品天天| 亚洲天堂久久av| 国产福利精品视频| 国产精品男女猛烈高潮激情| 国产精品极品尤物在线观看| 亚洲电影免费观看高清完整版| 欧美在线国产精品| 色综合导航网站| 国产精品情侣自拍| 国产精品久久久久久亚洲调教| 欧美精品久久久久久久| 4p变态网欧美系列| 欧美一级大片视频| 91av在线看| 欧美大片在线免费观看| 国产不卡av在线免费观看| 北条麻妃在线一区二区| 欧美在线亚洲一区| 日韩专区中文字幕| 久久精品国产成人| 亚洲最大的网站| 久久精品久久久久久国产 免费| 国产一区二区三区免费视频|