![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
大水熊
这个作者很懒,什么都没留下…
展开
-
[转]可变参数宏 , Variadic Macros
说起可变参数,立即想到的就是printf(),scanf()了。可变参数就是有一个固定的格式控制参数,后面再根据格式控制参数接若干参数。 这里先讨论可变参数宏。 我们一般在Debug需要打印调试信息的时候,需要可变参数的宏。 一, vc(C99)的复杂宏。 参考msdn(http://msdn2.microsoft.com/en-us/library/ms177415.aspx )。使用这种复杂宏时,省略号是格式控制参数,而标识符__VA_AR转载 2010-09-01 09:38:00 · 512 阅读 · 0 评论 -
有关VA_LIST的用法--变参函数的实现
VA_LIST 是在C语言中解决变参问题的一组宏VA_LIST的用法: (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针 (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。 (3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。 (4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参转载 2010-09-01 10:15:00 · 525 阅读 · 0 评论 -
Linux内核中的printf实现
<br />从main.c中的printf开始读这个函数。首先看printf函数的定义:<br />1 <br />static int printf(const char *fmt, ...)<br />2 <br />{<br />3 <br /> va_list args;<br />4 <br /> int i;<br />5 <br /><br /><br />6 <br /> va_start(args, fmt);<br />7 <br /> write(1,print转载 2010-09-01 09:46:00 · 1314 阅读 · 0 评论