<P> sizeof cannot be used in C preprocessor expressions, such as #if, because the preprocessor has no data types . </P> <P> When sizeof is applied to the name of an array, the result is the number of bytes required to store the entire array . This is one of the few exceptions to the rule that the name of an array is converted to a pointer to the first element of the array, and is possible just because the actual array size is fixed and known at compile time, when the sizeof operator is evaluated . The following program uses sizeof to determine the size of a declared array, avoiding a buffer overflow when copying characters: </P> <P> Here, sizeof buffer is equivalent to 10 * sizeof buffer (0), which evaluates to 10, because the size of the type char is defined as 1 . </P> <P> C99 adds support for flexible array members to structures . This form of array declaration is allowed as the last element in structures only, and differs from normal arrays in that no length is specified to the compiler . For a structure named s containing a flexible array member named a, sizeof s is therefore equivalent to offsetof (s, a): </P>

What is the size of this structure assume size of int as 4