本次想分享的小技巧是:如何利用结构体使代码整洁。
假设现在有这么一个功能函数:范围值的校验。
bool rangeCheck(int min,int max,int value)
{
if(value < min || value > max)
return flase;
else
return true;
}
输入的三个参数分别是 边界最小值min和边界最大值max,以及需要校验的值value。
上面功能函数需要三个参数,代码看起来一点也不整洁,若是N个输入参数,那功能函数就会更长。
这时候利用结构体,就可以使代码整洁。
定义结构体:
typedef struct
{
const int min;
const int max;
}Range;
在定义一个宏,方便给结构体赋值,这样使用起来就更整洁了。
#define SetRange(min,max) {(min),(max)}
Range range = SetRange(3,9);
上面实例化Range结构体为range,并使用SetRange宏赋值,相当于:
Range range = {(3),(9)};
range.min = 3; range.max = 9;
这样,我们把rangeCheck功能函数整洁为:
bool rangeCheck(Range rangeValidator,int value)
{
return rangeValidator.min <= value && rangeValidator.max >= value;
}
如此看来rangeCheck功能函数变成高大上了。