摘要: __stdcall和__cdecl是两种函数名字修饰。(注意是连续的两个下划线)Windows上windows上不管是C还是C++,默认使用的都是__stdcall方式。不论__stdcall还是__cdecl函数参数都是从可向左入栈的,并且由调用者完成入栈操作。对于__stdcall方式被调用者自身在函数返回前清空堆栈;而__cdecl则由调用者维护内存堆栈,所以调用者函数生成的汇编代码比前一种方式长。由__cdecl约定的函数只能被C/C++调用。Windows上使用dumpbin工具查看函数名字修饰。C语言__stdcall方式:_FuncName@sizeofParameters例如: 阅读全文
posted @ 2012-10-15 22:31 张朝阳 阅读(13142) 评论(1) 推荐(1) 编辑
摘要: 先上一段代码:#include<iostream>using namespace std;class Base{public: int a;protected: int b;private: int c;};struct Derived:public Base{};int main(){ Derived inst; cout<<sizeof(Base)<<endl; cout<<sizeof(Derived)<<endl; cout<<sizeof(inst)<<endl; cout<<inst.a 阅读全文
posted @ 2012-10-15 14:57 张朝阳 阅读(3308) 评论(0) 推荐(1) 编辑