社区
C语言
帖子详情
变参函数至少提供一个显示参数么
boomni
2012-05-14 11:25:35
int Fun(...)写成这样不行吗
...全文
77
9
打赏
收藏
变参函数至少提供一个显示参数么
int Fun(...)写成这样不行吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
boomni
2012-05-14
打赏
举报
回复
有错误吗
boomni
2012-05-14
打赏
举报
回复
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
这是那个宏
#define va_pre_start(ap,v) ( ap = (va_list)&v )
改成这样就可以了吧
boomni
2012-05-14
打赏
举报
回复
其实我是想做到这样
write(para1,para2,...)
如果用了va_start就直接从第二个para2开始了,
我想把para1也带进来,就是要弄个va_start执行完成后,让列表指针再自己减一次,不知可行否
沭水河畔
2012-05-14
打赏
举报
回复
[Quote=引用楼主 的回复:]
int Fun(...)写成这样不行吗
[/Quote]
不行,因为必须知道第一个参数的摆放地址。
具体请读
《变参函数的实现原理》
。
W170532934
2012-05-14
打赏
举报
回复
不行,可以先看下变参函数怎么定义的。你直接在括号里写几个点是没有用的,还要报错。
paschen
2012-05-14
打赏
举报
回复
可以这样写,我在VS2010上调试通过了
可这样写没意思,你办法获得变参的位置。
还有就是能用函数重载、数组等方式代替的,最好不要用变参
因为用变参极易出错,编译器对变量类型没有检查,还可能出现越界访问。
一根烂笔头
2012-05-14
打赏
举报
回复
不行,要给个起跑线”
qq120848369
2012-05-14
打赏
举报
回复
没有第一个变量,就不知道参数栈地址从何开始.
Saleayas
2012-05-14
打赏
举报
回复
可以的,但是,你实现这个函数的时候,不能直接使用 va_start 宏。
因为这个宏需要一个明确的参数地址。
CC++
变参
函数
1.C实现
变参
函数
C语言中,有时需要
变参
函数
来完成特殊的功能,比如C标准库
函数
printf()和scanf()。...1
变参
函数
至少
要有
一个
固定
参数
,省略号“…”不可省略,比如printf()的原型如下:int printf(const cha...
C语言可
变参
函数
可
变参
函数
使用需要包含头文件 #include "stdarg.h" 首先声明
一个
功能为累乘的可...可
变参
函数
至少
需要有
一个
变量,原因在下面说明。 定义
函数
: int fun1(int force_para1, int number, ...){ int product=1;
变参
函数
的深度解析(通俗易懂)
函数
至少
需要
一个
固定
参数
,其声明与普通
函数
参数
相同;可选
参数
由于数目不定(0个或以上),声明时用"…"表示(“…”用作
参数
占位符)。固定
参数
和可选
参数
共同构成可变
参数
函数
的
参数
列表。 可变
参数
函数
的原型: ...
C语言中可
变参
函数
介绍与示例
在调用时要依次给出与形式
参数
对应的所有实际
参数
,但在某些情况下,我们希望
函数
的
参数
个数可以根据需要来确定(例如常见的printf()
函数
,它的
函数
参数
个数就是不确定的),这时我们就需要可
变参
函数
了。...
c语言可
变参
函数
之
参数
指针的使用
但在可
变参
函数
的例子中,发现结果错的,经过查询其他资料,写了
一个
执行结果正确的例子,特此记录一下。 利用可
变参
函数
,实现多个值的加和,直接上经我验证的代码: /** * 计算可选
参数
之和 * * 可
变参
函数
...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章