Complicated Declarations - Programming

Q1:

What will be the output of the program in DOS (Compiler - Turbo C)?
#include<stdio.h>
double i;

int main()
{
    (int)(float)(char) i;
    printf('%d', sizeof((int)(float)(char)i));
    return 0;
}

A 1

B 2

C 4

D 8

ANS:A - 1

Due to the C language is being platform dependent:

In Turbo C (DOS - 16 bit platform), the output will be 2.

But in GCC (Unix/Linux - 32 bit platform), the output will be 4.