integer.c
资源名称:c.rar [点击查看]
上传用户:shmaik
上传日期:2014-06-01
资源大小:45093k
文件大小:1k
源码类别:

VC书籍

开发平台:

C/C++

  1. #include "fmt.h"
  2. #include "assert.h"
  3. #include "mem.h"
  4. #define T Integer_T
  5. typedef int *T;
  6. T Integer_new(int n) {
  7. T integer;
  8. NEW(integer);
  9. *integer = n;
  10. return integer;
  11. }
  12. int Integer_get(T integer) {
  13. assert(integer);
  14. return *integer;
  15. }
  16. int Integer_put(T integer, int n) {
  17. int prev;
  18. assert(integer);
  19. prev = *integer;
  20. *integer = n;
  21. return prev;
  22. }
  23. int Integer_cmp(T i1, T i2) {
  24. assert(i1);
  25. assert(i2);
  26. if (*i1 < *i2)
  27. return -1;
  28. else if (*i1 > *i2)
  29. return +1;
  30. else
  31. return 0;
  32. }
  33. void Integer_fmt(int code, va_list *app,
  34. int put(int c, void *cl), void *cl,
  35. unsigned char flags[], int width, int precision) {
  36. char buf[44];
  37. T integer;
  38. assert(app && flags);
  39. integer = va_arg(*app, T);
  40. assert(integer);
  41.   Fmt_putd(buf, Fmt_sfmt(buf, sizeof buf, "%d", *integer),
  42. put, cl, flags, width, precision);
  43. }