美文网首页
C语言常用自定义宏

C语言常用自定义宏

作者: NullUser | 来源:发表于2020-07-13 21:23 被阅读0次

1.输出时带上文件名、函数名、代码行。

#define PRINT(...) do{  \
  printf("%s---%s---%d---", __FILE__, __func__, __LINE__);  \
  printf(__VA_ARGS__);  \
  }while(0)

2.转成字符串,特殊符号不需要转义

#define STR(...) #__VA_ARGS__

int main()
{
  printf("%s\n", STR(this is a str,no escape,json:{"a":"b"}) );
  //对比
  printf("%s\n", "this is a str, escape, json:{\"a\":\"b\"}" );
  return 0;
}

3.置零

#define SET_0(x) memset((x), 0, sizeof((x)))

4.最大最小值

#define INT_MAX(a, b)  \
  ({ typeof((a)) _a = (a); typeof((b)) _b = (b); _a>_b?_a:_b; })
#define INT_MIN(a, b)  \
  ({ typeof((a)) _a = (a); typeof((b)) _b = (b); _a<_b?_a:_b; })

5.用日志记录代替assert,避免程序退出,并记录日志

extern void Log_write(const char *filename, const char *content);
#define CATCH(try)  \ 
  do{  \
  if(!(try)) {  \
    Log_write("FILE_NAME", #try);  \
  }  \
  }while(0)

相关文章

  • C语言常用自定义宏

    1.输出时带上文件名、函数名、代码行。 2.转成字符串,特殊符号不需要转义 3.置零 4.最大最小值 5.用日志记...

  • XML引用(4)--DTD应用

    DTD实体声明(自定义) 作用:类似于C语言的宏定义(#define)关键字:ENTITY语法格式:

  • iOS开发常用的宏定义

    Objective-C常用宏/*! 字体 */ /*! 颜色宏定义 */ /*! 弱引用宏 */ /*! 输出显示...

  • C语言笔记

    1. C语言本质上属于函数式语言,分为系统定义库函数和用户自定义函数两类。 常用库函数:scanf,printf,...

  • 精解C语言预处理命令(三)之“宏”的用法二

    关于C语言带参数的宏定义中的参数 C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实...

  • 总结2017.6.23

    关于Button 文字大小自适应 常用的宏 颜色的宏(随机色和自定义颜色) 关于cell和tableView

  • C 语言 宏 整理

    开头的语句就是预处理命令 语句中可以利用" \ "来换行. 把宏参数变为一个字符串, 用##把两个宏参数贴合在一起...

  • c语言的宏

    C语言的宏 宏是一个字符串替换的工具,再编译之前,预处理阶段完成。以#define起始的行为宏的定义。宏中出现的几...

  • C语言宏offsetof

    C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整...

  • C语言宏定义

    1、一般定义 2、条件判断 3、编译时错误信息 4、系统常见自定义宏 5、宏参数的字符串化和宏参数的连接

网友评论

      本文标题:C语言常用自定义宏

      本文链接:https://www.haomeiwen.com/subject/jfizcktx.html