当前位置:首页 > 资讯 > info5 > 正文

调用约定

发表于: 2016-05-07   作者:Sagittarius_Warrior   来源:转载   浏览:
摘要:     本文主要介绍C/C++编译中的调用约定,包括:cdecl、stdcall、VC++编译器、mingw编译器、gcc编译器、g++编译器。一、调用约定的内涵调用约定主要约定两件事:1,参数入栈的顺序;2,函数调用结束后,谁(调用者or被调用者)来恢复栈。二、cdecl1,函数调用时,参从右到左入栈。2,函数调用结束后,调用者负责恢复栈。查看VS工程属性->c/c++->高级,可知VS默认为c

        本文主要介绍C/C++编译中的调用约定,包括:cdecl、stdcall、VC++编译器、mingw编译器、gcc编译器、g++编译器。

一、调用约定的内涵

调用约定主要约定两件事:

1,参数入栈的顺序;

2,函数调用结束后,谁(调用者or被调用者)来恢复栈。


二、cdecl

1,函数调用时,参从右到左入栈。

2,函数调用结束后,调用者负责恢复栈。

查看VS工程属性-> c/c++ -> 高级,可知VS默认为cdecl调用约定。


三、stdcall

1,函数调用时,参从右到左入栈。

2,函数调用结束后,被调用函数返回前,自己负责恢复栈。

Windows API采用stdcall,如关键字WINAPI 、CALLBACK。它不能用于可变参数函数调用。


具体参考博客:调用约定、mingw和mvc转换、msvc mingw dll

调用约定

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号