va_start, va_arg练习
来源:互联网 发布:淘宝上的药店靠谱吗 编辑:程序博客网 时间:2024/05/19 23:17
#include <stdarg.h>#include <stdio.h>void print(char *format, ...){va_list ap;va_start(ap,format);//这里其实要做判断的//#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )//_crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )//#define va_arg _crt_va_arg//va_arg &1111 1100,也就是说,其结果可能是 1-4(char), 4-4(int), 8-8(double) int a = va_arg(ap, int);char c = va_arg(ap, char);char *str = va_arg(ap, char*);va_end(ap);printf("%d, %c, %s\n", a, c, str);}int main(){int a = 1;char c = 'o';char *str = "aaaaaabbbbcccddd";print("%d, %c, %s", a, c, str);int t1 = 4;//-char//-int 7//-double 11int t2 = ~3;printf("t1 %d, t2 %d\n", t1, t2);printf("%d\n", t1 & t2);return 0;}
运行结果:
1, o, aaaaaabbbbcccddd
t1 4, t2 -4
4
t1 4, t2 -4
4
0 0
- va_start, va_arg练习
- 解释va_arg, va_end, va_start
- va_start(),va_arg(),va_end示例
- va_start、va_arg、va_end用法
- va_start va_arg va_end
- VA_LIST VA_START VA_ARG VA_END
- va_start、va_arg、va_end分析
- va_list、va_start、va_arg、va_end
- va_start(),va_arg(),va_end()
- va_list,va_start,va_arg,va_en
- va_list va_start va_arg va_end
- va_start,va_end, va_arg
- va_list、va_start、va_arg、va_end
- va_list, va_start, va_end, va_arg
- va_list、va_start、va_arg、va_end
- va_start和va_arg
- va_list & va_start & va_arg & va_end
- va_list、va_start、va_arg、va_end
- C语言指针笔记
- linux 设置时间(hadoop 对于时间要求比较高,所有在集群时特别要注意时间)
- Node.js 事件循环
- PAT 1019Prime Factors (25)
- 分布式缓存技术Redis 在windows上以服务方式启动
- va_start, va_arg练习
- java文件流——字节流
- 引入Marathon-lb时,官方阐述了Mesos-DNS的几个缺陷
- HDU 5730 Shell Necklace(CDQ分治+FFT)
- Android DrawerLayout 侧滑界面的简单实现
- 小猫统计现在可以实现用表格编辑从表时,用下拉列表(即lookup字段)
- 听大咖分享《俞军的产品方法》有感
- QNetworkAccessManager 实现FTP上传功能,解决 文件名是中文,QUrl含有中文路径 不能上传的问题
- GetWindowLong函数(最好的解释资料,绝对值得一看,此函数在子类化技巧时候经常用...