C语言可变参数函数实现原理
来源:互联网 发布:知敬畏心得体会 编辑:程序博客网 时间:2024/05/16 16:17
大家对va_list , va_start,va_arg,va_end 不陌生吧? 对scanf, printf类型
(如sscanf,sprintf)的带可变参数的函数的原理知道多少呢? 如果有兴趣了解的
话,推荐大家阅读: http://www.cnblogs.com/acutus/p/variable-parameter.html
当然,值得指出的是,作者后来给出的“支持可变参数的函数”的实现代码是有
问题的。在此贴上小弟改正后的代码,如下:
#include <stdio.h>#define __va_rounded_size(TYPE) \ (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))void var_args_func(const char * fmt, ...){ char *ap;printf(" sizeof(fmt) = %d \n", sizeof(fmt)); ap = ((char*)&fmt) + sizeof(fmt); printf("%d\n", *(int*)ap); ap = (char *)ap + __va_rounded_size(char); printf("%d\n", *(int*)ap); ap = ap + __va_rounded_size(char); printf("%s\n", *((char**)ap));}int main(){ var_args_func("%d %c %s\n", 4, 'a', "hello world"); return 0;}
0 0
- C语言可变参数函数实现原理
- C语言可变参数函数实现原理
- C语言实现printf函数,即参数可变函数原理
- C语言中可变参数函数实现原理浅析
- C语言中可变参数函数实现原理浅析
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C 语言可变参数实现原理
- C语言可变长参数实现原理
- C语言可变长参数实现原理
- c语言实现函数可变参数
- [LeetCode] Linked List Cycle
- wikioi1100 自由落体
- HVM guest配置文件
- ORACLE触发器调试
- 周立功--专注的力量成就梦想
- C语言可变参数函数实现原理
- <PY><core python programming笔记>C5 数字
- android 编译环境 libgl1-mesa-glx:i386相关安装后ubuntu启动失败
- 《算法导论》笔记 第20章 20.4 最大度数的界
- win7下VS2008 英文版 创建类似VC6.0的单文档工程
- pom文件miss artifact com.sun:tools:jar:1.5.0:system问题
- wikioi3288 积木大赛
- 财宝通告诉你如何利用网络POS机及时到账功能养卡
- iOS 沙盒 知识