<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ? 最近學習過程中碰到有關函數調用方法,如:__stdcal,_cdecl和__fastcall。查閱了一些相關的資料和別人的經驗,我總結如下:

    __stdcal,_cdecl,__fastcall有三個方面來區分:

    1:函數參數是按什么順序壓入棧中的。

    2:調用完畢后是由誰來釋放棧中的空間的。(這個問題主要是因為函數傳遞過程中是存放在棧中的,可以選擇調用者釋放空間,也可以選擇被調用者釋放。)

    3:產生函數名的修飾方法。

    ???????????????????????????????????????????????????
    ?__stdcal
    ?_cdecl
    ?__fastcall
    ?
    1
    ?從右到左
    ?從右到左
    ?一般指傳送不超過4個字節的參數,通過寄存器,不用棧,這樣比較快
    ?
    2
    ?函數自己解決棧的清除工作,如Windows的API函數
    ?棧的清除工作是由調用者(不同的編譯器產生棧的方式不盡相同)
    ?從左邊開始的兩個大小不大于4個字節(DWORD)的參數分別放在ECX和EDX寄存 器,其余的參數仍舊自右向左壓棧傳送
    ?
    3
    ?_func@12
    ??func@@ZAXXZ
    ?@func@12
    ?

    為了避免由編譯器造成的問題,強烈建議在調用時使用__stdcal。

    ?

    posted on 2009-06-16 15:35 -274°C 閱讀(493) 評論(0)  編輯  收藏 所屬分類: C++

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914354
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲日韩VA无码中文字幕| 国产成人 亚洲欧洲| 四虎精品亚洲一区二区三区| 一级毛片免费观看不卡的| 高潮内射免费看片| 亚洲制服丝袜中文字幕| 国产亚洲一区二区精品| 国产猛烈高潮尖叫视频免费| 91精品国产免费| 免费h视频在线观看| 美女裸免费观看网站| 国产精品亚洲片在线va| 91亚洲va在线天线va天堂va国产| 国产亚洲色视频在线| 亚洲AⅤ视频一区二区三区| 一区二区无码免费视频网站| 免费无码VA一区二区三区| 精品熟女少妇aⅴ免费久久| 美女尿口扒开图片免费| 亚洲熟女www一区二区三区| 亚洲一欧洲中文字幕在线| 综合自拍亚洲综合图不卡区| 亚洲精品国产精品乱码不卡√| 亚洲国产成人VA在线观看| 四只虎免费永久观看| 日本高清免费不卡在线| 成年女人毛片免费播放人| 国产h视频在线观看网站免费| 999久久久免费精品播放| 久别的草原电视剧免费观看| 人妻免费一区二区三区最新| 国产做国产爱免费视频| 中文字幕手机在线免费看电影| 国产国产人免费人成成免视频| 一本久久A久久免费精品不卡| 曰批免费视频播放免费| 免费国产va视频永久在线观看| 免费看又黄又爽又猛的视频软件 | 久久久受www免费人成| 猫咪免费人成在线网站| 免费一级全黄少妇性色生活片|