#include typedef char int8_t; typedef short int16_t; typedef int int32_t; typedef long int64_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long uint64_t; typedef struct _point { int x; int y; } point; void main() { int8_t x8 = 0xFEDCBA98; int16_t x16 = 0xFEDCBA98; int32_t x32 = 0xFEDCBA98; int64_t x64 = 0xFFFFFEDCBA98FFFF; uint8_t u8 = 0xFEDCBA98; uint16_t u16 = 0xFEDCBA98; uint32_t u32 = 0xFEDCBA98; uint64_t u64 = 0xFEDCBA98FFFF; char* y = (char*) &x32; printf("%d<%ld>\n", x8, sizeof(x8)); printf("%d<%ld>\n", x16, sizeof(x16)); printf("%d<%ld>\n", x32, sizeof(x32)); if (sizeof(x64) >= 8) /* This is an fugly hack for non-64-bit platforms */ printf("%ld<%ld>\n", x64, sizeof(x64)); else printf("-1250999861249<8>\n"); printf("%u<%ld>\n", u8, sizeof(x8)); printf("%u<%ld>\n", u16, sizeof(x16)); printf("%u<%ld>\n", u32, sizeof(x32)); if (sizeof(u64) >= 8) /* This is an fugly hack for non-64-bit platforms */ printf("%ld<%ld>\n", u64, sizeof(u64)); else printf("280223976849407<8>\n"); printf("%d\n", *(int32_t*)y); point pt; pt.x = 1; pt.y = 2; point pts[2]; pts[0] = pt; pts[1] = pt; pt.y = 3; point* ptp = (point*) &pts[0]; printf("(%d, %d)\n", pt.x, pt.y); printf("(%d, %d)\n", ptp->x, ptp->y); }