11 2014 档案

摘要:在定义可变参数的函数之前,先来理解一下函数参数的传递原理:1、函数参数是以栈这种数据结构来存取的,在函数参数列表中,从右至左依次入栈。2、参数的内存存放格式:参数的内存地址存放在内存的堆栈段中,在执行函数的时候,从最后一个(最右边)参数开始入栈。因此栈底高地址,栈顶低地址,举个例子说明一下:void... 阅读全文
posted @ 2014-11-17 23:44 奋斗+坚持 阅读(323) 评论(0) 推荐(0)
摘要:在C语言的标准库中,printf、scanf、sscanf、sprintf、sscanf这些标准库的输入输出函数,参数都是可变的。在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用可变参数的宏是一个不错的选择。在C99中规定宏也可以像函数一样带可变的参数,如:#define... 阅读全文
posted @ 2014-11-17 23:06 奋斗+坚持 阅读(5320) 评论(0) 推荐(0)
摘要:下面这段程序是一个C语言的小技巧,其展示了如何把一个参数为结构体的函数转成一个可变参数的函数,其中用到了宏和内建宏“__VA_ARGS__”,下面这段程序可以在GCC下正常编译通过:#include #define func(...) myfunc((struct mystru){__VA_ARGS... 阅读全文
posted @ 2014-11-06 12:19 奋斗+坚持 阅读(208) 评论(0) 推荐(0)
摘要:使用logcat命令查看和跟踪系统日志缓冲区的命令logcat的一般用法是:[adb] logcat [] ... [] ... 下文介绍过滤器和命令选项,详细内容可参见Listing of logcat Command Options。 可以在开发机中通过远程shell的方式使用logcat... 阅读全文
posted @ 2014-11-06 10:40 奋斗+坚持 阅读(465) 评论(0) 推荐(0)