#include <stdio.h>
#include <stdint.h>
#define IS_WORD_EMPTY(A) ((uint32_t)(A) == (uint32_t)0xFFFFFFFF)
const uint32_t empty = 0xFFFFFFFF;
static inline uint8_t is_word_empty(float * ptr)
{
uint32_t * tmp = (void *)ptr;
uint8_t ret = (*tmp == empty) ? 0x1 : 0x0;
(void) tmp;
return ret;
}
int main(void)
{
int ret = 0;
union {
float v_float;
uint32_t v_u32;
} test;
test.v_u32 = (uint32_t)0xFFFFFFFF;
printf("1\tIS_WORD_EMPTY(test.v_float) \t\t\t\t\t\t "); fputs(IS_WORD_EMPTY
(test.
v_float) ? "TRUE" : "FALSE", stdout
);
printf("\r\n2\t(memcmp(&test.v_float,&empty,sizeof(float))==0) \t "); fputs((memcmp(&test.
v_float,&empty
,sizeof(float))==0) ? "TRUE" : "FALSE", stdout
);
printf("\r\n3\tis_word_empty(&test.v_float) \t\t\t\t\t\t "); fputs(is_word_empty
(&test.
v_float) ? "TRUE" : "FALSE", stdout
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNkZWZpbmUgSVNfV09SRF9FTVBUWShBKSAoKHVpbnQzMl90KShBKSA9PSAodWludDMyX3QpMHhGRkZGRkZGRikKCmNvbnN0IHVpbnQzMl90IGVtcHR5ID0gMHhGRkZGRkZGRjsKCnN0YXRpYyBpbmxpbmUgdWludDhfdCBpc193b3JkX2VtcHR5KGZsb2F0ICogcHRyKQp7CQkJCQkJCQkJCgl1aW50MzJfdCAqIHRtcCA9ICh2b2lkICopcHRyOwkKCXVpbnQ4X3QgcmV0ID0gKCp0bXAgPT0gZW1wdHkpID8gMHgxIDogMHgwOwoJKHZvaWQpIHRtcDsKCXJldHVybiByZXQ7Cn0KCmludCBtYWluKHZvaWQpCnsKCWludCByZXQgPSAwOwoJdW5pb24gewoJCWZsb2F0IHZfZmxvYXQ7CgkJdWludDMyX3Qgdl91MzI7Cgl9IHRlc3Q7Cgl0ZXN0LnZfdTMyID0gKHVpbnQzMl90KTB4RkZGRkZGRkY7CgkKCXByaW50ZigiMVx0SVNfV09SRF9FTVBUWSh0ZXN0LnZfZmxvYXQpIFx0XHRcdFx0XHRcdCAiKTsKCWZwdXRzKElTX1dPUkRfRU1QVFkodGVzdC52X2Zsb2F0KSA/ICJUUlVFIiA6ICJGQUxTRSIsIHN0ZG91dCk7CgkKCXByaW50ZigiXHJcbjJcdChtZW1jbXAoJnRlc3Qudl9mbG9hdCwmZW1wdHksc2l6ZW9mKGZsb2F0KSk9PTApIFx0ICIpOwoJZnB1dHMoKG1lbWNtcCgmdGVzdC52X2Zsb2F0LCZlbXB0eSxzaXplb2YoZmxvYXQpKT09MCkgPyAiVFJVRSIgOiAiRkFMU0UiLCBzdGRvdXQpOwoJCglwcmludGYoIlxyXG4zXHRpc193b3JkX2VtcHR5KCZ0ZXN0LnZfZmxvYXQpIFx0XHRcdFx0XHRcdCAiKTsKCWZwdXRzKGlzX3dvcmRfZW1wdHkoJnRlc3Qudl9mbG9hdCkgPyAiVFJVRSIgOiAiRkFMU0UiLCBzdGRvdXQpOwoJCglyZXR1cm4gMDsKfQo=