·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux文档 | Linux论坛 | Linux下载 | Linux博客 | Linux搜索
新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL | Apache | Ubuntu | Gentoo| OSCON08
  Linux时代 >> 技术文档 >> 程序开发
 
用GCC和C99的可变参数宏, 更方便地打印调试信息
来源: ChinaUnix博客  日期: 2008.03.14 17:53 (共有条评论) 我要评论
 

                今天在linux的头文件中看到pthread_mutexattr_getspshared函数的声明中看到restrict关键字,呵呵,以前没见过,和以往的习惯一样先baidu一下,发现这是C99的关键字,了解一翻后发现这篇文章说C99的另一个东西感觉比较实用,转过来留个档
http://www.chinaunix.net/jh/23/631531.html
gcc的预处理提供的可变参数宏定义真是好用:
#ifdef DEBUG
#define dbgprint(format,args...) \
fprintf(stderr, format, ##args)
#else
#define dbgprint(format,args...)
#endif
如此定义之后,代码中就可以用dbgprint了,例如dbgprint("aaa %s", __FILE__);。感觉这个功能比较Cool !
下面是C99的方法, 感谢zalem兄:
#define dgbmsg(fmt,...) \
              printf(fmt,__VA_ARGS__)
常用的:
#define dprintf(fmt, args...)   printf("%s  %s  %d: "fmt"\n",__FILE__, __func__, __LINE__, ##args   );
  #define dputs(str)   printf("%s  %s  %d:  %s\n",__FILE__, __func__, __LINE__, str );
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56723/showart_496547.html
  发表评论 查看评论(共有条评论) 我要提问
 
 


最新资讯更多>> 
· 番茄花园事件给我们的反思
· 红帽收购Qumranet加强虚拟化领..
· Debian 下一个稳定版的代号被确..
· 发行版发布:Mandriva Linux 2..
· Sun VirtualBox v2.0 发布
· Ubuntu Linux用户突破800万
· Mandriva Linux 2009 RC 1 发布
· 构建Linux版本的谷歌Chrome浏览器
· 发行版发布:Scientific Linux..
· BSD发行版:DragonFly BSD 2.1..
论坛热点更多>> 
· 奔腾老机器16M内存,还能用什..
· 【经典】我是一条内存
· 刚接到通知
· 建议!
· 下班我们部门KTV有美女陪 o(..
· 中秋都有什么打算啊
· 誰懂裝修啊,來幫幫忙
· UNIX环境高级编程这本书怎么样?
· 真实的战争~~~~来晚的已经没..
· 《深入理解Linux网络内幕》原..
文档更新更多>> 
· 用YUM升级CentOS系统中PHP和MySQL
· [转]Red Hat Linux 安全设置指南
· 使用Emacs作为文件管理器
· linux内核的移植与遭遇问题的解决
· KStar 校园网锐捷认证GUI版
· 给eclipse安装CDT插件开发C/C++工程
· ubuntu 8.10 安装 Lotus Symphony
· fsck命令
· RHEL5的kickstart中的%packages部..
· linux 线程实现机制分析
 
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 友情链接 | 免费注册

Copyright © 2001-2008 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们