Хочу проверить, корректно ли срабатывают мои ifdef'ы для этих платформ и правильно ли расставились размеры для новозаданных фиксированных размеров для с89. То есть проверить
#include <stdio.h>
#if defined(__x86_64__) || defined(_M_X64)
typedef unsigned char u8;
typedef signed char i8;
typedef unsigned short u16;
typedef signed short i16;
typedef unsigned int u32;
typedef signed int i32;
#elif defined(__i386) || defined(_M_IX86)
typedef unsigned char u8;
typedef signed char i8;
typedef unsigned short u16;
typedef signed short i16;
typedef unsigned int u32;
typedef signed int i32;
#endif
#if defined(__ia64) || defined(__itanium__) || defined(_M_IA64)
typedef unsigned char u8;
typedef signed char i8;
typedef unsigned short u16;
typedef signed short i16;
typedef unsigned int u32;
typedef signed int i32;
#endif
// power pc/power pc64/sparc/sparc 64/arm
int main()
{
printf("sizeof(u8) = 1? %s\n", sizeof(u8) == 1 ? "true" : "false");
printf("sizeof(i8) = 1? %s\n", sizeof(i8) == 1 ? "true" : "false");
printf("sizeof(u16) = 2? %s\n", sizeof(u16) == 2 ? "true" : "false");
printf("sizeof(i16) = 2? %s\n", sizeof(i16) == 2 ? "true" : "false");
printf("sizeof(u32) = 4? %s\n", sizeof(u32) == 4 ? "true" : "false");
printf("sizeof(i32) = 4? %s\n", sizeof(i32) == 4 ? "true" : "false");
return 0;
}
Как и где это проверить? Можно ли поставить какие-нибудь эмуляторы? Пусть работает по такту в час, лишь бы скомпилилось и запустилось.