设为首页 加入收藏

TOP

C语言中变参函数的实现细节(二)
2017-07-25 10:22:30 】 浏览:7494
Tags:言中 函数 实现 细节

va_end宏就比较简单了,虽然各种平台的实现细节不一样,但是道理都是一样的,在glibc中va_end被简单地实现为一个空语句。

由此可见,实际上C语言的所谓变参函数是很笨的,它基本上啥智能都没有,不能跟C++的多态性和符号重载相比,我们在传递参数的时候虽然可以传递不定个数的参数,但是这些参数都必须在函数实现中给予一一处理。所以我还是比较推崇C++呵呵!

至于printf这个调皮鬼,上面看到它的原型了,里面还调用了vfprintf函数,这个函数就不分析了(实在太长了),它里面就用了va_arg来获取各个变参的值。printf之所以可以识别各种变量类型,是因为你调用它的时候必须用printf修饰符,也就是%d,%f,%s等等来指定你的参数,printf是很笨的,它是不知道的。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux下c语言入门04 main函数的编.. 下一篇C陷阱与缺陷第一章

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目