要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个 ...
下面列举了一些常见的宏写法: 我们使用 把宏参数变为一个字符串,用 把两个宏参数贴合在一起。 当宏参数是另一个宏的时候需要注意的是凡宏定义里有用 或 的地方宏参数是不会再展开。 Linux内核中的一些宏定义 前面list head文章中讲过的就不说了,比如container of之类的 : 常用的宏: init,标记内核启动时所用的初始化代码,内核启动完成后就不再使用。其所修饰的内容被放到.ini ...
2012-06-05 22:32 0 5654 推荐指数:
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个 ...
...
在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define MAX ...
忘了啥时候记的笔记了 @ 目录 宏定义 1.不带参数的宏定义: 2.带参数的宏定义: C语言宏定义技巧(常用宏定义) 1,防止一个头文件被重复包含 ...
1、Q_UNUSED 如果一个函数的有些参数没有用到、某些变量只声明不使用,但是又不想编译器、编辑器报警报,就Q_UNUSED(name),其他没有什么实际性作用。 2、Q_DISABLE_COPY 在类定义时使用,代表此类禁止被拷贝或赋值: 其实用作等效于: ...
#if 1#define DEBUGP(fmt, ...) printf("%s(%d): "fmt"\n", __func__, __LINE__, ##__VA_ARGS__)#else#define DEBUGP(fmt, ...)#endif 将宏的值转换为字符串 #define ...
1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎。它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了;也可以把任何东西定义成宏。因为编译器会在预编译的时候用真身替换替身,而在 ...
注意区分宏定义函数和普通函数定义的区别: 宏定义中表达式的参数要加括号,否则可能会出错(运算的优先级): 同理计算的优先级问题还可以出现的main()函数中表达式中: 所以一般是不建议利用宏定义来表示太多的计算表达式,很可能会出现表达式计算错误。 ...