Overflow appears even when using unsigned long int

Viewed 7502

When I make the following calculation:

unsigned long long int data_size = 60123456 * 128 * sizeof(double);
printf("data_size= %llu  \n", data_size);

I surprisingly get overflow warning:

test.c:20:49: warning: overflow in expression; result is -894132224 with type 'int' [-Winteger-overflow]
    unsigned long long int data_size = 60123456 * 128 * sizeof(double);
                                                ^
1 warning generated.

I cannot understand why this error appears even though I am using unsigned long long int! Can someone explain why? Thank you

5 Answers
Related