怎样写一个有可变参数的函数?
来源:互联网 发布:淘宝如何代销阿里巴巴 编辑:程序博客网 时间:2024/05/17 07:37
怎样写一个有可变参数的函数?
用 <stdarg.h> 提供的辅助设施。
下面是一个把任意个字符串连接起来的函数, 结果存在 malloc 的内存中:
#include <stdlib.h> /* 说明 malloc, NULL, size_t */ #include <stdarg.h> /* 说明 va_ 相关类型和函数 */ #include <string.h> /* 说明 strcat 等 */ char *vstrcat(const char *first, ...) { size_t len; char *retbuf; va_list argp; char *p; if(first == NULL) return NULL; len = strlen(first); va_start(argp, first); while((p = va_arg(argp, char *)) != NULL) len += strlen(p); va_end(argp); retbuf = malloc(len + 1); /* +1 包含终止符 /0 */ if(retbuf == NULL) return NULL; /* 出错 */ (void)strcpy(retbuf, first); va_start(argp, first); /* 重新开始扫描 */ while((p = va_arg(argp, char *)) != NULL) (void)strcat(retbuf, p); va_end(argp); return retbuf; }调用如下:
char *str = vstrcat("Hello, ", "world!", (char *)NULL);注意最后一个参数的类型重置; 注意调用者要释放返回的存储空间, 那是用 malloc 分配的。
- 怎样写一个有可变参数的函数?
- 怎样写一个有可变参数的函数?
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏?
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏?
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 怎样写参数个数可变的宏
- 写一个简单的可变参数的C函数
- 写一个简单的可变参数的C函数
- 【C语言】如何写一个参数可变的函数
- c++ 可变参数自定义print c/c++如何写一个带可变参数的函数
- 怎么写一个可变参数的宏
- 2006年11月8日 周三 21:30 IBMTechClub俱乐部在计算机学院4楼大会议室开会
- 新一代电信计费系统的演进
- 怎样取整数?
- sqlplus 命令使用大全
- 如何解决ORA-04031 错误
- 怎样写一个有可变参数的函数?
- 电信计费帐务系统中-月租费计算程序分析
- Web开发设计:DisplayTag应用指南
- 浮躁的程序员们
- Tapestry3 与 Spring 集成
- EL表达式
- Eclipse+Tomcat运行JSP的配置
- 3.16~3.18
- 如何产生高斯白噪声