C语言可变参数技术内幕
- 格式:pdf
- 大小:116.29 KB
- 文档页数:2
—
ag 1 t r (i ,mo e ( mo e })(i =、 c a s d) ( d 1t s (hr
从 函 数 原 型 可 以 看 出 , 除 了 接 收 一 个 固 定 的 参 数 fr 其 0-
m t 外 , 面 的参 数 用 ” ቤተ መጻሕፍቲ ባይዱ 示 。 在 C语 言 中 , … ” 示 a以 后 … 表 ” 表
2 变参 函数 的应 用
2 1 变 参 函数 的 一 般 应 用 . 在 标 准 C语 言 头 文 件 s ag h中 定 义 了 三 个 宏 : t r. d
v i a od v
—
为 空 , 有 任 何 真 实 对 应 的代 码 , 于 代 码 对 称 , v— t 没 用 与 a sr a t 对 应 ; 外 , 还 可 能 发 挥 代 码 的 ”自注 释 ” 用 。所 谓 代 码 另 它 作
s r 宏 我 们 可 以 取 得 可 变 参 数 表 的 首 指 针 , 个 宏 的 定 tt a 这
义 为
#d fn a e ev i
—
l c语 言 中常用 的变 参 函数
c 中 的可 变 参 数 函 数 有 很 多 , 型 的 函 数 如 pi fsaf 典 r t cn n、 等 都 可 以接 受 数 量 不 定 的参 数 , 面 以 pif 数 为 例 , 可 下 r t函 n 它 以有 以下 等 更 多 的调 用 方式 :
第 7卷
第 2期
漯 河 职 业 技 术 学 院学 报
J u na fLu h c to lTe hn lg l e o r lo o e Vo a ina c oo y Col eg
Vo17 No. . 2
Ma. 0 r 2 08
20 0 8年 3月
C语 言可 变 参 数 技 术 内幕
}) ( ( i )i ( (n l t+ ( b ii— l n f mo e t s uln ai o( d ) t g < = 7 3 7 )&( b i i ai o ( o e 4 :) … uhn l n f m d )< = 7 — g 4 4:
一
可 以 接 受 不 定 数 量 的 参 数 , 论 上 来 讲 , 以 是 0或 0以 上 理 可
p it r f(” v o ”) p n (” d , ; r t (” n I oey u ; f f l i % ” a) pi f % n
d, ”,a %d ,b ) ;
s r (8 , t t p v)(a = ( a l t & + 一 N S・ a p v —i ) v s ITI
中图分 类号 :P 1 T 32
一 -
文献 标识 码 : A
文章 编号 :6 1— 8 4 2 0 ) 2— 0 5—0 17 76 (0 8 0 0 5 2
4・ ・ ・ ・ ・ > 争 争 夺 夺 {”夺 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 一夺 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ÷ 夺 夺 夺 夺 夺 夺 夺 夺 ÷ 夺 夺 夺 孛 争 { 夺 孛 夺 夺 争 争 ÷ 幸 毒 夺 夺 ÷ 夺 { 夺 串 牛 争 争 争 争 夺 夺
一 —
I T IE F n (i o N SZ O ( )( s ef(n ) + s e f(i z io z n t)
1)& ~(s ef n i o(i z t) 一 1)) ; )
v a
—
第一 、 、 个 pit分 别 接 受 1 2 3个 参 数 , 我 们 看 二 三 r f n 、、 让
Z OF( )); E v
显 而 易 见 , 含 义 为 将 最 后 那 个 固定 参 数 的 地 址 加 上 可 其 变参数 对其的偏移后 赋值给 a , 样 a p这 p就 是 可 变 参 数 表 的 首 地 址 。 其 中 的 一N SZ O I T IE F宏 定 义 为
#d fne e i
左晓静 , 永 乐 赵
( 河 职 业 技 术 学 院 计 算机 工 程 系 , 南 漯河 4 2 0 ) 漯 河 6 0 2
夺 ・} ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ - - ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ÷ 毒, 夺 争 夺 争 ÷ 夺 ・ 孛 夺 寺 夺 夺 孛 争 寺 夺 夺 寺 孛 夺 夺 夺 争
摘要: 列举 c语 言 中常 用的 变参 函数 , 以此 对 可 变参数 做 出总 体介 绍 , 别结合 不 同的 应 用举 例 并 分 详 细 分析 了这 些函数 的执行 过 程 , 分析 了可变参数 的工作 环 境 、 工作 原 理及技 术要 求。 关键词 : 可变参数 ; 定 义宏 ; 汇 编 预 反
c语 言 有 一 个 不 同 于 其 它 语 言 的 特 性 , 即其 支 持 可 变 参 数 。可 变 参 数 也 是 c语 言 中 常 用 的 重 要 内 容 之 一 , 确 、 正 灵
活地使用可变参数 , 使编写的程序简洁 、 可 高效 。
—
参 数 表 的前 一个 固 定 参 数 ; p t e为 可 变 参 数 的 类 型 。 通 过 v y a
的 n个 参 数 。
8 )+s efm d ) ) [一1 ; ) i o( o e ) ) z ]
而 v— n a ed宏 被 用 来 结 束 可 变 参 数 的 获 取 , 定 义 为 : 其 #
de n a i f ev
—
e d(1 t)可 以看 出 ,a e d(1s 实 际 上 被 定 义 n i s v— n it)
看 p nf函数 的原 型 : i ft itp nf(c n t h r}fr t … ); n f t i o sc a oma ,
ag 的 意 思 则 指 取 出 当前 ag pr 指 的 可 变 参 数 r宏 r— t所
并将 a p指 针 指 向下 一 可 变 参 数 , 原 型 为 其