| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2750 人关注过本帖, 2 人收藏
标题:一个变参函数的示例
取消只看楼主 加入收藏
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏(2)
 问题点数:0 回复次数:2 
一个变参函数的示例
变参函数的实现:

.386
.model flat,stdcall

include kernel32.inc
includelib kernel32.lib

.code
_MyProc proc C p:VARARG        ;这里是关键
    ret
_MyProc endp

start:
    invoke _MyProc,ebx,ecx,edx    ;参数可以随意 个数
    invoke ExitProcess,0
end start

[bo](感谢“林海惊涛”网友点拨。。。)[/bo]

[[it] 本帖最后由 cnhanxiao 于 2008-11-10 15:14 编辑 [/it]]
收到的鲜花
  • zklhp2008-11-11 12:42 送鲜花  50朵   附言:我很赞同
搜索更多相关主题的帖子: 示例 函数 
2008-11-10 15:10
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
.386
.model flat,stdcall

include kernel32.inc
includelib kernel32.lib

.data
param1        dd 55555555h
param2        dd 99999999h
param3        dd 0AAAAAAAAh
param4        dd 0FEFEFEFEh

.code
testproc proc C args:VARAR          ;此段子程序是“林海惊涛”网友提供,很好!!!
        mov   eax,[ebp+4]
        movzx eax,byte ptr [eax+2]
        shr   eax,2                 ;得到参数个数
        ......
        ret
testproc endp

start:
    [un];_MyProc的第一个参数是后面参数的个数[/un]——此句去掉,是原来设想的残根
    invoke testproc,param1,param2,param3;,param4;变参函数调用
    invoke ExitProcess,0
end start

[[it] 本帖最后由 cnhanxiao 于 2008-11-11 17:00 编辑 [/it]]
收到的鲜花
  • zklhp2008-11-11 12:46 送鲜花  50朵   附言:我很赞同

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-11 10:49
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
回复 6# 的帖子
我四楼帖子里的注释有问题,那是之前为了确定参数个数,附加了一个参数,告知函数有多少参数。但是实际程序已经不用了,只是注释我忘记去掉了。

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-11 16:59
快速回复:一个变参函数的示例
数据加载中...
 
   



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

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