C宏

来源:互联网 发布:数据清洗什么意思 编辑:程序博客网 时间:2024/05/18 00:06
1. #define in_val_u16(16val, tvb)

宏参数16val不能以数字开头

2. 可变参数宏
#define dbprintf(...) printf(__VA_ARGS__)
__VA_ARGS__

3. 可变参数宏的##

#define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__)

这里,如果可变参数被忽略或为空,‘##’操作将使预处理器(preprocessor)去除掉它前面的那个逗号。如果你在宏调用时,确实提供了一些可变参数,GNU CPP也会工作正常,它会把这些可变参数放到逗号的后面。象其它的pasted macro参数一样,这些参数不是宏的扩展。


4. LOG(Windows)

  1. #define AUTO_FNC_TRACE { FILE *fp;fopen_s(&fp, "c:\\1.txt", "a");SYSTEMTIME sys;GetLocalTime( &sys );fprintf(fp, "%02d:%02d:%02d.%03d: %s\n",sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds, __FUNCTION__);fclose(fp);}
  2. #define L_TRACE(...) { FILE *fp;fopen_s(&fp, "c:\\1.txt", "a");fprintf(fp, ##__VA_ARGS__);fclose(fp);}
5. 侧效

  1. 错误的
  2. #define PRINT \
  3.       printf("a\n"); \
  4.       printf("a\n");

  5. if ( ok )
  6.   PRINT


修正后,加{}
#define PRINT { \

     printf("a\n"); \
     printf("a\n");}





<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(233) | 评论(0) | 转发(0) |
0

上一篇:TC 快捷键

下一篇:C 大端 小端

相关热门文章
  • test123
  • 编写安全代码——小心有符号数...
  • 使用openssl api进行加密解密...
  • 一段自己打印自己的c程序...
  • 彻底搞定C语言指针详解-完整版...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击