码迷,mamicode.com
首页 > 其他好文 > 详细

优雅的宏定义

时间:2015-07-10 10:57:09      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

优雅的宏定义


打印:
  1. #define DBG_vPrintf(a,b,ARGS...) do { if (a) printf(b, ## ARGS); } while(0)
  2. #define DBG_vAssert(a,b) do { if (a && !(b)) printf(__FILE__ " %d : Asset Failed\n", __LINE__ ); } while(0)
  1. #define UI_BLUE(x) "\e[34;1m"x"\e[0m"
  2. #define UI_GREEN(x) "\e[32;1m"x"\e[0m"
  3. #define UI_YELLOW(x) "\e[33;40;1m"x"\e[0m"
  4. #define UI_RED(x) "\e[31;1m"x"\e[0m"
  5. #define DBG_ERR if (defined_dbg & DBG_ERROR) \
  6. printf(UI_RED("[WIFI-ERR]")" %s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); \
  7. printf
  8. #define DBG_INFO if (defined_dbg & DBG_INFOR) \
  9. printf(UI_BLUE("[WIFI-INFO]")" %s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); \
  10. printf
  11. #define DBG_DBG if (defined_dbg & DBG_DUBGER) \
  12. printf(UI_GREEN("[WIFI-DBG]")" %s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); \
  13. printf
  14. #define DBG_WAN if (defined_dbg & DBG_WANNING) \
  15. printf(UI_YELLOW("[WIFI-DBG]")" %s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); \
  16. printf
技术分享


技术分享


技术分享


  1. 6.标号元素
  2. 标准 C 要求数组或结构体的初始化值必须以固定的顺序出现,在 GNU C 中,通
  3. 过指定索引或结构体成员名,允许初始化值以任意顺序出现。
  4. 指定数组索引的方法是在初始化值前添加“ [INDEX] =” ,当然也可以用
  5. “[FIRST LAST] =”的形式指定一个范围。例如下面的代码定义一个数组,并把其
  6. 中的所有元素赋值为 0
  7. unsigned char data[MAX] = { [0 ... MAX-1] = 0 };
  8. 下面的代码借助结构体成员名初始化结构体:
  9. struct file_operations ext2_file_operations =
  10. {
  11. llseek: generic_file_llseek,
  12. read: generic_file_read,
  13. write: generic_file_write,
  14. ioctl: ext2_ioctl,
  15. mmap: generic_file_mmap,
  16. open: generic_file_open,
  17. release: ext2_release_file,
  18. fsync: ext2_sync_file,
  19. };
  20. 但是,Linux 2.6 推荐类似的代码应该尽量采用标准 C 的方式,如下所示:
  21. struct file_operations ext2_file_operations =
  22. {
  23. .llseek = generic_file_llseek,
  24. .read = generic_file_read,
  25. .write = generic_file_write,
  26. .aio_read = generic_file_aio_read,
  27. .aio_write = generic_file_aio_write,
  28. .ioctl = ext2_ioctl,
  29. .mmap = generic_file_mmap,
  30. .open = generic_file_open,
  31. .release = ext2_release_file,
  32. .fsync = ext2_sync_file,
  33. .readv = generic_file_readv,
  34. .writev = generic_file_writev,
  35. .sendfile = generic_file_sendfile,
  36. };


技术分享










优雅的宏定义

标签:

原文地址:http://www.cnblogs.com/eager7/p/9f0e834d3cf54cb9484bab1a834401ac.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!