typeof和clamp
(1) typeof 不是 typedef
(2)
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#define clamp(val,min,max) ( { \
typeof(val) __val = (val); \
typeof(val) __min = (min); \
typeof(val) __max = (max); \
__val = __val < __min ? __min:__val;\
__val > __max ? __max:__val;})
#define IS_DOMAIN(val,min,max) (((val>=min)&&((val<=max))?true:false))
int main(void)
{
int value = 500;
float ad_value = 100.00;
printf("value is %d\n",IS_DOMAIN(value,0,50));
printf("value is %d\n",value);
printf("is_down is %f\n",(double)IS_DOMAIN(ad_value,0,50));
printf("value is %f\n",(double)value);
value = clamp(value,0,50);
printf("value is %d\n",value);
value = clamp(value,1U,10);
printf("frame index is %d\n",value);
return 0;
}
value is 5
frame index is 5