blob: ef87ad55d2ba3319c8d2245e1380e9ce5e685470 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdint.h>
#include <stdio.h>
int
main(void)
{
if (sizeof(float) == 4) {
unsigned long int a, b;
a = (unsigned long int)*(uint32_t *)&(float){ (float)(1. / 12.) };
b = (unsigned long int)*(uint32_t *)&(float){ -(float)(1. / 12.) };
printf("#define USING_BINARY32 %i\n",
a == 0x3daaaaabUL && b == 0xbdaaaaabUL);
}
if (sizeof(double) == 8) {
unsigned long long int a, b;
a = (unsigned long long int)*(uint64_t *)&(double){ 1. / 12. };
b = (unsigned long long int)*(uint64_t *)&(double){ -1. / 12. };
printf("#define USING_BINARY64 %i\n",
a == 0x3fb5555555555555ULL && b == 0xbfb5555555555555ULL);
}
return 0;
}
|