意外收获
来源:互联网 发布:气候变化 知乎 编辑:程序博客网 时间:2024/05/05 23:10
今天下午在蹭计算机科学与技术学院的《数据结构》课时,意外学到了如何使用变长参数表。本来嘛我学习C语言就卡在了这里我就是看不明白如何调用这个函数,不过经老师一讲我搞懂了,原来这个函数在声明时是变长参数的如minprintf(char *fmt,...),而在调用时却必须是参数确定的如 minprintf("%d%d",a,b)。
我认为这个函数另一个难点是使用了宏stdarg.h。这个宏在谭浩强的书《c语言程序设计》没有提到,所以这就成为了障碍!马上就要开始学习《数据结构》了,很是期待,虽然听说不好学,但是我相信"世上有难易乎,为之难者亦易乎;不为,易者亦难亦"!
现在把这个函数片段附在下方,当然高手一看就知道怎么回事:
#include<stdio.h>
/* minprintf函数: 带有可变参数表的简化的printf函数*/
void minprintf(char *fmt,...)
{
va_list ap;
char *p, *sval;
int ival;
double dval;
va_start(ap, fmt);
for(p=fmt; *p; p++)
{
if(*p != '%')
putchar(*P);
continue;
}
switch (*++p)
{
case 'd':
ival = va_arg(ap, int);
printf("%d", ival);
break;
case 'f':
dval = va_arg(ap, double);
printf("%f", dval);
break;
case 's':
for (sval = va_arg(ap, char *); *sval; sval++)
putchar(*sval);
break;
defualt:
putchar(*p);
break;
}
}
ven_end(ap);
}
自然,如果你对这个函数片段有独特的体会,还请不吝赐教!小弟先谢了!
- 意外收获
- 意外收获
- 20080618培训意外收获
- 意外的收获
- 意外的收获
- 技术工程师-意外收获
- 意外的收获
- 意外的小收获
- 意外的收获access
- 意外淘宝收获
- 整理屋子的意外收获
- 新公司的意外收获
- 足球课的意外收获
- 5.1后意外收获红雪莲
- 意外的收获——GWT
- 意外收获:如何将中文转成拼音
- 改变fileupload样式 意外的收获
- 学会弯腰, 这会是我意外的收获
- c++求集合幂集 源代码及算法优化
- ConfigurationManager类读取配置文件链接字符串
- 发现简单下载百度文库的新招
- 刚刚开始学习编程!
- FPGA学习中的小知识2
- 意外收获
- 子网掩码的计算与划分详解
- 想事、做事和成事
- 加入csdn
- 一起温习C#基础
- 宅男夜思
- C 语言总复习
- 关于浏览器兼容的秘密
- 计算机必知的53个缩写