#include <stdio.h>
int main() {
    unsigned long long int num = 285212672; //FYI: fits in 29 bits
    int normalInt = 5;
    printf("My number is %d bytes wide and its value is %ul. A normal number is %d.\n", sizeof(num), num, normalInt);
    return 0;
}
输出:
My number is 8 bytes wide and its value is 285212672l. A normal number is 0.
我认为此意外结果是由于打印unsigned long long int。你怎么printf()了unsigned long long int?