`
yaojingguo
  • 浏览: 202394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Possible Implementation of ANSI C stdarg.h on IA-32

阅读更多

#include <stdio.h>

typedef char* vay_list;

#define vay_rounded_size(type) \
  (((sizeof (type) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))

#define vay_start(ap, v) \
  ((void) (ap = (vay_list) &v + vay_rounded_size (v)))

#define vay_arg(ap, type) \
  (ap += vay_rounded_size (type), *((type *)(ap - vay_rounded_size (type))))

#define vay_end(ap) ((void) (ap = 0))


void PrintFloats (int amount, ...)
{
  int i;
  double vayl;
  printf ("Floats passed: ");
  vay_list vl;

  vay_start(vl,amount);

  for (i=0;i<amount;i++)
  {
    vayl=vay_arg(vl,double);
    printf ("\t%.2f",vayl);
  }

  vay_end(vl);

  printf ("\n");
}

int main ()
{
  PrintFloats (3,3.14159,2.71828,1.41421);
  return 0;
}
 
分享到:
评论

相关推荐

    printf-stdarg.c

    资源中的串口打印,可用于所有TI系列功能安全类芯片,只需更改串口寄存器的地址即可使用。可用于串口调试。如何配置串口在本人博客中已经讲解,可以参考。

    可变参数stdarg.h使用方法(例题)

    可变参数stdarg.h使用方法(例题) va_list用法 va_start已经 va_end

    _mingw_stdarg.h

    _mingw_stdarg.h

    stdarg.h中三个宏va_start ,va_arg和va_end的应用

    1)首先在函数里定义一个va_list型的变量,这里是arg_ptr,这个变 量是指向参数的指针. 2)然后用va_start宏初始化变量arg_ptr,这个宏的第二个参数是第 一个可变参数的前一个参数,是一个固定的参数. ...

    C标准库文档,包括标准库中12个头文件的描述

    * &lt;stdarg.h&gt; : Variable Argument Lists * &lt;stddef.h&gt; : Definitions of General Use * &lt;stdio.h&gt; : Input and Output * &lt;stdlib.h&gt; : Utility functions * &lt;string.h&gt; : String functions * &lt;time.h&gt; : Time...

    C_Standar_Library

    英文版C语言标准库,Word文档 Contents • &lt;assert.h&gt; : Diagnostics • &lt;ctype.h&gt; : Character Class Tests • &lt;errno.h&gt; : Error Codes Reported by (Some) Library Functions • &lt;float.h&gt; : Implementation-...

    c语言基于stdarg.h的可变参数函数的用法

    本篇文章主要介绍了c语言基于stdarg.h的可变参数函数的用法,详细的介绍了可变参数函数的详细用法和源码实例,有兴趣的可以了解一下

    The C programming Language(chm格式完整版)

    Variable Argument Lists: &lt;stdarg.h&gt; Non-local Jumps: &lt;setjmp.h&gt; Signals: &lt;signal.h&gt; Date and Time Functions: &lt;time.h&gt; Implementation-defined Limits: &lt;limits.h&gt; and &lt;float.h&gt; Appendix C: Summary ...

    绿色版PocketDOS 和 绿色版TC3.0

    FILES ON DISKS -------------- DISK 1 ------ INSTALL EXE - Install program UNZIP EXE - Decompress .ZIP files README COM - Reads this README CLASSDBL ZIP - BIDSDBL PRJ - Project file for building ...

    C语言函数库详解.doc

    C语言函数库,包含 C 标准库、IO 函数、字符处理函数、字符串函数、数学函数、时间和日期函数、其它函数等数百个常用的C语言函数,文档中对常用函数库的函数原型、详细功能、使用示例等进行了详细的介绍说明,。...

    C语言头文件大全

    ISO C标准定义的头文件(24项) &lt;assert.h&gt; 验证程序断言 &lt;complex.h&gt; 支持复数算术运算 &lt;ctype.h&gt; 字符类型 &lt;errno.h&gt; 出错码 ...&lt;signal.h&gt; 信号 &lt;stdarg.h&gt; 可变参数表 &lt;stdbool.h&gt; 布尔类型和值

    linux头文件介绍

    linux应用程序中常用头文件的介绍 ; &lt;assert.h&gt; 验证程序断言 &lt;cpio.h &gt; cpio归档值 ...&lt;stdarg.h &gt; 可变参数表 &lt;stddef.h &gt; 标准定义 &lt;stdio.h &gt; 标准I/O库 &lt;stdlib.h &gt; 公用函数 &lt;string.h &gt; 字符串操作 ......

    C标准库函数集.rar

    7 变长变元表 &lt;stdarg.h&gt; 44 8 非局部跳转 &lt;setjmp.h&gt; . . . . . . . . . . 45 9 信号处理 &lt;signal.h&gt; . . . . . 46 10 日期与时间函数 &lt;time.h&gt; . . . . 48 11 由实现定义的限制 &lt;limits.h&gt; 和 &lt;float.h&gt; . . ....

    sift算法C++,opencv实现代码

    utils.h中添加头文件#include&lt;stdarg.h&gt; 属性-&gt;linker-&gt;input附加依赖项修改2.3.1版本opencv的lib库文件。 opencv中tbb.dll需复制重命名为tbb_debug.dll。 另外, 系统的环境变量和VS2008中的关于opencv的设置参考...

    stdarg的用法(可变参数的用法)

    可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,它是标准库的一部分。 这个头文件声明的一个va_list的类型,和三个宏va_start,va_arg,va_end。我们可以生明一个va_list类型的变量,配合三个宏使用。...

    计算器课程设计c语言版

    c语言课程设计_计算器设计 #include &lt;dos.h&gt; /*DOS接口函数*/ #include &lt;math.h&gt; /*数学函数的定义*/ #include &lt;conio.h&gt; /*屏幕操作函数*/ #include &lt;stdio.h&gt; /*I/O函数*/ #include &lt;stdlib.h&gt; /*库函数*/ #...

    C语言基础教程TXT

    7.8.7 随机数发生器函数 ...B.7 变量变元表:&lt;stdarg.h&gt; B.8 非局部跳转:&lt;setjmp.h&gt; B.9 信号处理:&lt;signal.h&gt; B.10 日期与时间函数:&lt;time.h&gt; B.11 由实现定义的限制:&lt;limits.h&gt;和 &lt;float.h&gt; 附录C 变更小结

    c语言画图示例

    程序源代码:#include "graphics.h"#include "math.h"#include "dos.h"#include "conio.h"#include "stdlib.h"#include "stdio.h"#include "stdarg.h"#define MAXPTS 15#define PI 3.1415926struct PTS {int x,y;...

Global site tag (gtag.js) - Google Analytics