| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1257 人关注过本帖
标题:能解释这个源代码进来一下
只看楼主 加入收藏
田里兵蜂
Rank: 1
等 级:新手上路
威 望:2
帖 子:604
专家分:0
注 册:2007-1-29
收藏
得分:0 
__cdecl = c declaration

程序的压栈方式为C风格

__stdcall为PASCAL风格


__cdecl程序的压栈方式为C风格
__stdcall为PASCAL风格
举个例子:
(1) C函数 Fun1(a,b,c)
函数调用时,参数压栈顺序为 c , b , a
(2) PASCAL函数 Fun(a,b,c)
函数调用时,参数压栈顺序为 a, b , c
找的资料


参数从右向左压栈及由调用函数负责清栈,可以支持参数个数的不定

[此贴子已经被作者于2007-3-5 20:30:04编辑过]

2007-03-05 20:29
candc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-19
收藏
得分:0 
头文件就是一些宏定义和函数的声明。。
2007-03-05 21:32
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
cdecl这个在标准的C好像不是关健字,但它。。。。。

谁有强殖装甲第二部,可以Q我460054868
2007-03-05 21:34
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
#if __STDC__
#define _Cdecl
#else
#define _Cdecl cdecl
#endif

这段代码是设置调用约定:
_cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法.
用__cdecl关键字说明是C调用约定:按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。
_cdecl是C和C++程序的缺省调用方式。



用__STDC__关键字相当于16位动态库中经常使用的PASCAL调用约定:PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分.

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-06 12:43
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

#if !defined(__STDIO_DEF_)
#define __STDIO_DEF_
与最后一行的
#endif
是对应的.
__STDIO_DEF_相当于文件的标记,
当编译器编译了此文件也就说宏定义__STDIO_DEF_ ,
以后用#include ""调用此文件时,到#if !defined(__STDIO_DEF_)
就会中止编译.

当编译器没有编译了此文件,就会宏定义__STDIO_DEF_ ,以后还调用时,
就不再编译了.

这样做的好处在于,不会同时编译几个相同的此文件的内容,
也就是保定了不会出现重定义的错误.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-06 12:52
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif

数据类型的自定义,
因此不要自己宏定义_SIZE_T,
否则,你会不知道错误从那里来的,
我给你一个测试程序.

#define _SIZE_T
#include <stdio.h>
int main(void)
{
}

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-06 12:59
快速回复:能解释这个源代码进来一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017352 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved