宏函数在项目中使用的非常常用,那么我们先来看看下面几个问题吧!
1,位操作,记住:宏函数没有返回值的
2,宏函数参数是否可以为float/double类型数据
3,什么时候使用宏函数,和c++的inline关键字修饰的函数的区别是什么。
4,宏函数一般没有参数类型,参数指针可以用吗
我们先来看看下面这个例子:
#include<stdio.h>
//1,宏函数实现四舍五入
//x为浮点数
//一定要加强制类型转换,否则是浮点数据
#define UPFIVEDOWNFOUR(x)\
{\
if(((int)(x*10))%10 >= 5)\
{\
x = (int)(x*10/10) + 1;\
}\
else\
{\
x = (int)(x*10/10);\
}\
}
int main()
{
float a = 2.6;
float b = 2.3;
UPFIVEDOWNFOUR(a);
printf("a = %f\n",a);
UPFIVEDOWNFOUR(b);
printf("b = %f\n",b);
return 0;
}
我们再来看看宏的位操作吧!
#include<stdio.h>
#define SET_BIT(value,bit)\
{\
v