Chinaunix首页 | 论坛 | 博客
  • 博客访问: 421733
  • 博文数量: 99
  • 博客积分: 4230
  • 博客等级: 上校
  • 技术积分: 1026
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-21 14:52
文章分类

全部博文(99)

文章存档

2011年(1)

2010年(1)

2008年(13)

2007年(28)

2006年(45)

2005年(11)

我的朋友

分类: C/C++

2006-10-31 13:31:44

    操作系统: C++
    编程工具: VC++
    问题: 在WINDOWS WIN32编程中,经常在MAIN前的关键字,PASCAL,WINAPI,LRESULT等还有一些,能再举些例子,并说说他们在MAIN前各代表什么意思,好吗?谢了!
    水平: 刚入门(林琳)
   

    有的符号是表示函数类型,如LRESULT相当与long。有的是调用方式,如PASCAL和WINAPI,就是函数间如何传递参数。PASCAL在Win32中已经不使用了。WINAPI实际是stdcall。
    
    刘志用的意见:
    PASCAL,WINAPI是告诉编译系统,这是采用何种参数传递方式,说白了就是函数进栈的方式,是从左到右还中从右到左。VC++中是采用从左到右的。LRESULT常见于数据中的返回值和编写控件的返回值。

xc:
    操作系统: win98/winnt
    编程工具: vc++6
    问题: __stdcall ,__cdecl的区别?

回答:

    _stdcall将参数压栈是按C语言的顺序(从右到左),但与C 语言不同的是它是由被调用者将参数从栈中清除的,所以它的编译文件比_cdecl小。_stdcall是Windows API函数中默认的调用约定,VB、VFP等也采用这个约定。
    _cdecl是C语言采用的默认调用方法,它的优点是支持printf这样的可变参数调用。
    另外,VC++对于两种调用方法的名称转换方法也不同。

阅读(1153) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~