使用到了可变参数的宏定义

#define DEBUG_ENABLE 1
#if DEBUG_ENABLE > 0
#define DEBUG_PORT UART_PORT2
#define DBG_BUF_LEN 512
static char DBG_BUFFER[DBG_BUF_LEN];
#define APP_DEBUG(FORMAT,...) {\
Ql_memset(DBG_BUFFER, , DBG_BUF_LEN);\
Ql_sprintf(DBG_BUFFER,FORMAT,##__VA_ARGS__); \
if (UART_PORT1 == (DEBUG_PORT)) \
{\
Ql_Debug_Trace(DBG_BUFFER);\
} else {\
Ql_UART_Write((Enum_SerialPort)(DEBUG_PORT), (u8*)(DBG_BUFFER), Ql_strlen((const char *)(DBG_BUFFER)));\
}\
}
#else
#define APP_DEBUG(FORMAT,...)
#endif

最新文章

  1. LoadRunner IP欺骗(转)
  2. matplotlib 安装与使用
  3. PE文件学习系列一为什么是PE
  4. htmlcleaner
  5. 百思不得其解—这些年做Web开发遇到的坑?
  6. linux设置时间服务器
  7. SharePoint 无法删除搜索服务应用程序
  8. collections 模块:更多数据结构
  9. 动态计算rem的js代码
  10. Aptana下Django1.6以后的项目模板结构改造
  11. WebApi发布到外网提示404问题
  12. day059-60 ajax初识 登录认证练习 form装饰器, form和ajax上传文件 contentType
  13. CSS魔法堂:改变单选框颜色就这么吹毛求疵!
  14. php调用API支付接口 可个人使用,无需营业执照(使用第三方接口,调用的天工接口。)
  15. 【Nodejs】Expressのサンプルについて
  16. html 高亮显示表格当前行【转】
  17. LeetCode(40):组合总和 II
  18. 更新卡片的zIndex
  19. 利用python实现新浪微博爬虫
  20. 7-zip 压缩算法及C SDK使用

热门文章

  1. 网易2018.03.27算法岗,三道编程题100%样例AC题解
  2. 【课程总结】Linux内核分析课程总结
  3. hash函数补分博客
  4. [2017BUAA软工]个人项目:数独
  5. Java的JDK下StringBuffer与StringBuilder的区别
  6. Linux CentOS虚拟机网卡配置
  7. 关于WrapPanel和RadioButton相互配合使用实WrapPanel现动态添加或删除项
  8. sleep、yield、wait、join的区别(阿里面试)
  9. Macbook系统环境安装wget的2个方法 - 传统包及Homebrew安装
  10. Jest & React & Enzyme